接口和抽象类有什么区别?
接口和抽象类有什么区别?
1. 定义:抽象类使用abstract class
接口使用interface
2. 继承实现: 抽象类是一个类,继承需要extends,而且只能继承一个
接口不是类,继承需要implements,可以实现多个
3. 本质用法: 抽象类它的子类一般要求都是同一种类型的类,体现出java程序的重构。
抽象类---车
公共汽车/出租车.....
接口它的子类一般都是非同一种类型的类,体现出java程序的扩展。
接口---收费
飞机 电影院
4. 内部元素: 抽象类是一个类
实例变量,类变量,构造方法,实例方法,类方法,【抽象方法】
接口中的元素
类变量,类方法【jdk8.0】,【抽象方法】 ,访问限制修饰符都是public
类变量--public static
抽象方法----public abstract
接口中的变量可以省略public static
接口中的抽象方法可以省略public abstract
5. 抽象方法: 抽象类中抽象方法可以有,也可以没有
接口中的大部分方法都是抽象方法