java中的抽象,多态和接口

一     抽象类

  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 

  

原文地址:https://www.cnblogs.com/foreverone/p/10316956.html