jdk8中接口与抽象类的异同
2018-03-15 本文已影响0人
轻易流逝
相同点:
1.都能定义方法和属性
2.都不能创建实例
不同点:
1.抽象类只能单继承,接口可以多实现;
2.抽象类的方法可以用abstract、public、protect修饰,而接口方法只能用public abstract、default修饰;
3.抽象类的方法可以有抽象方法,也可以有实现的方法。而接口在jdk8以前只能有抽象方法,jdk8中可以带有默认方法;
4.抽象类的属性可以有各种各样的修饰符,接口的属性是默认的public static final
5.抽象类可以定义静态代码块,构造代码块,接口不行;
6.抽象类可以有构造方法,接口没有;
7.抽象类表示子类是不是某一类的子类,接口表示有没有某种功能;
8.接口只能继承接口,抽象类可以继承普通类,抽象类和接口。