抽象类和接口的区别
Posted littleboys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类和接口的区别相关的知识,希望对你有一定的参考价值。
抽象类:
1.含有abstract修饰符的class即为抽象类
2.abstract类不能创建实例对象
3.如果一个类中含有abstract修饰的方法,这个类必须定义为abstract class
4.抽象类中定义的抽象方法必须被子类实现,否则子类也是抽象类。所以不能有抽象的构造方法和抽象的静态方法
接口:
1.接口中所有的方法必须是抽象的
2.接口中定义的成员变量默认为:public static final修饰
3.接口中定义的方法默认为:pubilc abstract修饰。而且修饰符只能是public
4.接口不能被实例化
总结下两者的语法区别:
1.抽象类可以有构造方法。 接口中不能有
2.抽象类中可以定义普通的成员变量也可以定义静态常量。 接口中只能定义静态常量
3.抽象类中可以定义抽象方法,也可以定义普通方法。 接口中只能定义抽象方法
4.抽象类中定义的抽象方法可以用public protected 修饰 接口中值能用public修饰
5.抽象类中可以定义静态方法 接口中不能定义静态方法(JDK1.8后可以定义静态方法,和默认方法)
6.一个类可以实现多个接口 但只能继承一个抽象类 接口之间可以有多继承,单接口不能实现接口
结论:说白了 抽象类除了用abstract修饰和不能被实例化 其他的都和普通类一样 接口中只能有静态常量和抽象方法而且。
以上是关于抽象类和接口的区别的主要内容,如果未能解决你的问题,请参考以下文章