一 抽象类
1 什么是抽象类?
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。使用关键字 abstract 来声明。
2 抽象类的特点。
1 抽象类不能实例化 2 抽象类不一定包含抽象方法,但是一个类包含抽象方法,它就一定是抽象类。
3 抽象类中的抽象方法只是声明,不包含方法体。 4 继承抽象类的子类如果不是抽象类就必须重写父类的所有抽象方法。
5.构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
二 多态
1 什么是多态?
多态是同一个行为具有多个不同表现形式或形态的能力。
2 有什么好处?
1 消除类型之间的耦合关系 2可替换性 3 可扩充性 4 接口性 5灵活性 6 简化性
3 多态存在的必要条件
继承 重写 父类引用指向子类。ps: 父类型变量存储子类型对象调用子类特有方法时 需要向下转型。
Animal a = new Cat(); 动物(Animal)为父类 ,猫(Cat)为子类,声明的猫对象存储在动物类的变量中
此时如果变量a 想要调用猫的方法。就必须向下转型,因为a 动物类 进行 Cat c = (Cat)a; 把a 转换成猫类型 ,这样
就可以调用猫类的方法。
4 多态的实现方式
1 重写 2 接口 3 抽象类和抽象方法。
三 接口
1 什么是接口?
抽象方法的集合。 用interface来声明。
2 接口 与 类的区别?
1 接口不能实例化对象 2 接口没有构造方法 3 接口中的所有方法都必须是抽象方法 4 接口不能包含成员变量,除了static 和final
5 接口不是被类继承了,而是被类实现了 6 接口支持多继承
3 抽象类和接口的区别
1 抽象类的方法可以不是抽象方法,但接口中的方法必须是抽象方法。
2 抽象类的成员变量没有限制 ,但接口中的成员变量只能是 public static final 类型的。
3 接口中不能有static 修饰的方法,抽象类可以有。
4 一个类只能继承一个抽象类(单继承) ,但是一个类却可以实现多个接口(多实现) 类在实现接口时使用 implements
5 接口和接口之间可以继承,且接口之间存在多继承。使用 extends