接口:
- 接口中的变量和方法默认都是public的,且只能是public
- 接口中的变量默认是static final的
- 接口中的方法默认是abstract的
抽象类
1.抽象类中的变量和方法默认是包访问的
接口和抽象类的区别
- 接口中的方法不能有实现,static,default方法可以有方法体。抽象类的抽象方法不能有实现,但普通方法可以有实现
- 接口可以多实现,抽象类只能单继承
- 普通类实现接口需要实现全部的方法,而抽象类实现接口则可以不实现任何方法。
- 普通类继承一个抽象类,需要实现所有的抽象方法,抽象类继承抽象类也是可以不实现任何方法。
- 接口是对行为的抽象,是一种行为的规范。抽象类是对类的抽象,是设计的模板。
- 接口中的变量默认是public static final的,方法默认是public abstract的。抽象类中默认都是包访问的
接口中的static方法,default方法
- static方法可以有实现,不能被继承。调用方法和类的静态方法相同
- default方法可以有实现,能被继承。这是Java8中新添加的特性,Java凭借这一新特性实现了多继承
网友评论