抽象类与接口的区别

Posted goodbye-lazy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类与接口的区别相关的知识,希望对你有一定的参考价值。

抽象类:com.lzz.base.AbstractDemo
1、如果类被声明为abstract,方法不一定要abstract,但如果方法声明为abstract,类必须是abstract
2、声明为abstract的方法不能有方法体
3、final与abstact不能同时修饰类
4、抽象类不能被实例化,但可以有构造器
5、继承某抽象类的子类,除非子类也是抽象类,否则必须实现抽象类中的抽象方法
6、抽象方法可以继承一个类和实现多个接口
7、default不能修饰方法,因为它只能在接口中使用

接口:com.lzz.base.ITest
1、接口中的方法不能用protected、private,并且没有必要用public修饰,默认是public
2、default方法必须要有方法体,并且可以有多个default方法
3、接口不能有构造器

区别:
1、都可以有方法实现,但接口中的方法只能是default
2、抽象类可以有构造器,接口没有
3、抽象类比接口的速度要快,因为接口需要查找实现该接口的类
4、抽象类中可以有main方法,接口中没有
5、如果添加新方法时,抽象类可以直接添加一个方法实现,而接口需要改动所有实现它的类



















以上是关于抽象类与接口的区别的主要内容,如果未能解决你的问题,请参考以下文章

抽象类与接口的区别

抽象类与接口的区别

java抽象类与接口 中 相同方法的调用

抽象类与接口的区别

PHP中抽象类与接口的区别

Java抽象类与接口的区别: