前言
补充其一,abstract,interface,ectends和implements的系统认知
一、abstract.抽象的,模糊的,不具体的类
- abstract是一个修饰符,它被用来告诉虚拟机该类或者方法是一个抽象的类或者方法。
- 没有具体的方法体,所以没法实现和创建对象,称之为抽象类
- 子类去继承父类,如果子类不给父类抽象方法一个具体的方法体,那么子类也就成了一个抽象类,如果子类要对父类中的抽象方法定义方法体,那就需要重写。
- 抽象类中既可以有抽象方法也可以有非抽象方法。
- 抽象类有构造器但不能创建对象,需要子类来开辟空间
- 抽象类可以继承普通类,接口不能继承普通类
二、interface、接口
- 当抽象类中的所有方法都是抽象方法,变量都是常量时,建议将抽象类转为接口定义
- 接口中方法默认持有public static
- 接口中常量默认持有public abstract
三、extends和implements
extends、继承
implements、实现
关键字implements是一个类,实现一个接口用的关键字。
抽象类的继承和接口的实现都必须对父类中的所有抽象方法进行重写。
- 接口可以被多重实现,抽象类只能被单一继承
- 接口只有定义,抽象类可以有定义和实现
- 注意: jdk1.8之前接口的方法都是抽象方法,变量都是常量,1.8及之后接口可以定义默认方法