抽象(abstract):
不能具体实现的类,无方法体,用abstract修饰;
抽象类在于继承,类继承了抽象类后需重写它的抽象方法,因为抽象类不能创建对象,所以我们测试它就可以直接调用继承它的类中重写的方法
1.接口(interface):
1.接口比抽象更抽象,只能有抽象类,实现用implments
;
2.接口中只允许有常量,例:public static final int a=1;
当接口类型的引用作为方法的形参传递时,实参的传递有两种:
1.自定义类实现接口并重写抽象方法,后构造自定义类的对象作为实参传递;
2.使用匿名内部类的语法格式得到接口的引用作为实参传递;
抽象与接口区别:
1.定义:abstract(抽象), interface(接口);
2.继承抽象用extends
,实现接口implements
3.继承支持单继承,接口支持多实现;
4.抽象类可有成员方法,构造方法,但接口只有常量及抽象方法
5.抽象类加子类方法不用重写,接口加方法,子类要重写
6.在jdk1.8
开始允许接口有非抽象类,但要用dafault
修饰
匿名内部类语法:
接口/父类类型 引用变量名 = new 接口/父类类型(){方法的重写};