美文网首页
接口和抽象类有什么区别?

接口和抽象类有什么区别?

作者: 十一月1129 | 来源:发表于2020-09-18 15:37 被阅读0次

引自:https://www.zhihu.com/question/20149818

接口和抽象类都是继承树的上层,他们的共同点如下:

1)都是上层的抽象层。

2)都不能被实例化

3)都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。

他们的区别如下:

1)在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。

2)一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。

Java语言中类的继承是单继承原因是:当子类重写父类方法的时候,或者隐藏父类的成员变量以及静态方法的时候,JVM使用不同的绑定规则。如果一个类有多个直接的父类,那么会使绑定规则变得更复杂。为了简化软件的体系结构和绑定机制,java语言禁止多继承。

接口可以多继承,是因为接口中只有抽象方法,没有静态方法和非常量的属性,只有接口的实现类才会重写接口中方法。因此一个类有多个接口也不会增加JVM的绑定机制和复杂度。

对于已经存在的继承树,可以方便的从类中抽象出新的接口,但是从类中抽象出新的抽象类就不那么容易了,因此接口更有利于软件系统的维护和重构。

相关文章

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • 2018-07-19 java基础(一)

    1.abstract class 和interface 有什么区别? 抽象类可以有构造方法 接口不行 抽象类可以有...

  • Kotlin 零基础学习 接口和抽象类

    接口:接口就是暴露一种物体与另外一种物体沟通的方法 抽象类 接口 这么看接口和抽象类没什么区别,抽象类能干的接口也...

  • 7.Java抽象类和接口,基本类有什么区别

    问题:Java抽象类和接口,基本类有什么区别? 抽象 概念:使用了关键字 abstract 声明的类叫做抽象类。如...

  • 接口和抽象类有什么区别?

    程序员面试最容易被问到的题,你有没有被击中过 接口和抽象类有什么区别? ①抽象类和接口都不能直接实例化,如果要实例...

  • 2018面试宝典

    1.抽象类(abstract class)和接口(interface)有什么区别? 答:相同点:都不能被实例...

  • 2018-06-17 Java抽象类与接口的区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们...

  • Java面向对象

    Java和iOS的面向对象大体上没有什么区别,有几点需要注意: 抽象类 接口类 多继承 重载 对象 接口 包

  • 接口与抽象类的区别

    抽象类与接口有什么区别: 相同点: 都不能实例化对象 不同: 1.使用interface 抽象类用abstract...

  • 接口和抽象类有什么区别

    接口和抽象类的概念不一样,接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是...

网友评论

      本文标题:接口和抽象类有什么区别?

      本文链接:https://www.haomeiwen.com/subject/uosjyktx.html