java抽象类和接口

148 阅读2分钟

抽象方法:

在继承过程中,子类重写父类的同名方法,如果父类方法的方法体没有任何意义,那么可以省略掉它,省略方法体的方法为抽象方法

注意点:被abstract修饰,没有方法体的方法称为抽象方法;

抽象方法必须存在于抽象类中,不能存在于非抽象类;

抽象方法必须在其子类中实现,除非子类也是抽象类;


抽象类:

抽象类是基于继承的,使得父类更加基本

被abstract修饰的类称为抽象类,如果一个类包含有抽象方法,则该类一定是抽象类,但是一个类如果是抽象类,不一定包含抽象方法

抽象方法必须为 public 或者 protected(因为如果为 private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。

抽象类不能用来创建对象;

如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为 abstract 类

小记:抽象的子类要么全部实现抽象方法,要么也要定义为抽象类


接口:

  接口是一种规范,是方法和常量的集合

   我们可以在内心把接口理解为一个比抽象类更抽象的类

   接口可以被不同继承体系里的不同类去实现

   接口里的方法全是并且默认被abstract修饰的,这些方法要被实现类(子类)重写并使用多态

   一般我们使用接口都是定义方法

   什么都没有的接口被称为空接口,也称标记性接口。


接口使用特点:

    接口里不能有构造方法

    接口里除了有抽象方法和静态常量外,不能有 成员变量、成员方法等

    接口方法默认被abstract修饰且要被重写

    实现类可以实现多个接口

    接口不能被实例化(创建对象)

image.png