抽象类和接口的区别与联系
抽象类
abstract
1.抽象方法一定在抽象类中
2.抽象类和抽象方法肯定是被abstract修饰的
3.抽象类不可以用new关键字实例化,实例化一个抽象类没有任何意义
4.如果一定要用抽象类,那么可以使用多态的方式
5.虽然抽象类不能实例化,但是也是有构造器的
6.抽象方法不能被private修饰
7.抽象方法不能被static修饰
总结:1.抽象类就是用来被继承的
- 抽象方法就是用来被实现的
- 实现多态
接口
Interface:定义接口
Implements:实现接口
1.接口中的变量全部是静态常量
2.接口中的方法默认是公开抽象方法(public abstract),就算不写,也会自动加上public abstract
3.JDK1.8之后可以手动声明默认方法和静态方法
4.接口可以多实现,一个类可以实现多个接口
5.接口与接口之间使用extends
6.一个子类可以继承一个父类,实现多个接口
抽象类和接口的区别和联系:
1、抽象类和接口都不能直接实例化。抽象类变量只能引用子类对象,接口变量只能引用实现类对象。
2、接口中只能定义抽象方法,不能定义具体方法,但在抽象类中可以定义抽象方法,可以定义具体方法。
3、接口中定义的变量是公共的静态的常量,而抽象类中定义的变量是普通属性。
4、一个类只能继承一个父类,但是可以实现多个接口。