普通类和抽象类、接口和抽象类的区别
文章目录
- 问题一:普通类和抽象类有哪些区别?
- 问题二:接口和抽象类有什么区别?
问题一:普通类和抽象类有哪些区别?
抽象类不能被实例化
;
抽象类可以有抽象方法
,只需申明,无须实现
;
有抽象方法的类一定
是抽象类;
抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;
抽象方法不能声明为静态
、不能被static、final
修饰。
问题二:接口和抽象类有什么区别?
(1)接口
接口使用interface
修饰;
接口不能实例化
;
类可以实现多个
接口;
①java8之前,接口中的方法都是抽象方法,省略了public abstract
。②java8之后;接口中可以定义静态方法,静态方法必须有方法体
,普通方法没有方法体,需要被实现;
(2)抽象类
抽象类使用abstract
修饰;
抽象类不能被实例化
;
抽象类只能单继承
;
抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体
;
如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不是抽象类;②如果没有实现所有的抽象方法
,子类仍然是抽象类
。
还没有评论,来说两句吧...