面向对象的特性
面向对象的特性:封装、继承、多态和抽象
抽象类:
一个类中没有足够的信息来描述一个对象
抽象类的特性:
1、一个类中包含抽象方法,那么这个类肯定是抽象类;
2、子类必须继承父类所有的抽象方法,否则就必须用abstract来声明为抽象类;
3、抽象类不能被实例化;
4、抽象类的抽象方法没有方法体;
封装:封装是一种将抽象性函式接口的实现细节部分包装隐藏起来,放置外部类定义的代码访问;
简单来说就是私有的属性,开放的方法;
封装的优点:
1、良好的封装能减少耦合;
2、类内部的结构能够自由更改;
3、可以对成员变量进行更加精确的控制;
4、隐藏信息,隐藏实现细节;
继承:
继承就是子类继承父类的行为和属性,使得子类具有父类的实例域和方法,或者子类从父类继承方法,使得子类具有父类相同的行为,继承是纵向扩展的;
继承的特性:
1、子类拥有父类非private方法、属性
2、子类可以拥有自己的属性和方法,即对父类的扩展
3、子类可以用自己的方式实现父类的方法
4、java不支持多继承,但是支持多重继承
继承的关键字为extends和implements
代码实例:
extends:
class A{ } class B extends A{ }
implements:
public interface A { void test(); } public class B implements A{ @Override public void test() { } }
其中interface声明的是接口,接口是一种完全抽象的类型,是抽象方法的集合,如果说抽象类定义了对象的本质,那么接口只是定义了对象的功能,所以对于抽象类我们只能继承,而对于接口我们是实现;同样的,接口还优化了java不支持多继承的缺点,众所周知,java不支持多继承,但是支持多重继承,而接口则正是弥补了这一缺点,让我们的一个子类可以实现多个接口,但是只能继承一个父类;
代码实例:
多重继承:
class A{ } class B extends A{ } class C extends B{ }
多个接口的实现:
public interface A { void test(); } public interface C { void testC(); } public class B implements A,C{ @Override public void test() { } @Override public void testC() { } }
多态:
多态就是使同一个行为具有多个不同的表现形式或形态的能力
多态的三个必要条件:
继承、重写、父类引用指向子类对象,这三个条件缺一不可
代码实例:
public class A { public void test(){ System.out.println("多态实例"); }; } public class B extends A{ @Override public void test() { System.out.println("多态实例2"); } } public class C { public static void main(String[] args) { A a = new B();//向上类型转换 B b = (B) a;//向下类型转换 a.test(); b.test(); } }

浙公网安备 33010602011771号