抽象方法:
在继承过程中,子类重写父类的同名方法,如果父类方法的方法体没有任何意义,那么可以省略掉它,省略方法体的方法为抽象方法
注意点:被abstract修饰,没有方法体的方法称为抽象方法;
抽象方法必须存在于抽象类中,不能存在于非抽象类;
抽象方法必须在其子类中实现,除非子类也是抽象类;
抽象类:
抽象类是基于继承的,使得父类更加基本
被abstract修饰的类称为抽象类,如果一个类包含有抽象方法,则该类一定是抽象类,但是一个类如果是抽象类,不一定包含抽象方法
抽象方法必须为 public 或者 protected(因为如果为 private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。
抽象类不能用来创建对象;
如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为 abstract 类
小记:抽象的子类要么全部实现抽象方法,要么也要定义为抽象类
接口:
接口是一种规范,是方法和常量的集合
我们可以在内心把接口理解为一个比抽象类更抽象的类
接口可以被不同继承体系里的不同类去实现
接口里的方法全是并且默认被abstract修饰的,这些方法要被实现类(子类)重写并使用多态
一般我们使用接口都是定义方法
什么都没有的接口被称为空接口,也称标记性接口。
接口使用特点:
接口里不能有构造方法
接口里除了有抽象方法和静态常量外,不能有 成员变量、成员方法等
接口方法默认被abstract修饰且要被重写
实现类可以实现多个接口
接口不能被实例化(创建对象)