美文网首页
浅谈抽象类和接口的区别

浅谈抽象类和接口的区别

作者: 叫我小码哥 | 来源:发表于2018-01-09 19:25 被阅读0次

最近我看了一些接口和抽象类的区别,在这里我将我的所总结的内容分享给大家。

抽象类和接口的区别

1.抽象类使用abstract class 定义,抽象类既可以有抽象的方法也可以有非抽象的方法,既可以静态属性也可以非静态属性

        接口使用interface定义,属性用 public final static 修饰,如果没有写关键字,虚拟机会默认添加上述关键字。jdk8之前接口里的方法只能是抽象方法而且被public abstract修饰,如果没有上述关键字虚拟机会默认添加,jdk8之后接口里的方法既可以有抽象方法也可以有默认方法。

2.抽象类是一种类别,抽象类具有构造方法。

输出结果为

接口是一种行为规范,接口是没有构造器的。

3.抽象类只能单继承,接口可以被多个类实现,接口和接口之间可以多继承。

4.接口弥补了JAVA单继承缺陷

       例如: 有Person类 ,Person会做饭,那么Person就要继承cook类,Person还会讲课那么Person就要继承Teacher类,JAVA中规定了类和类之间是单继承,所以刚才的例子就不能通过抽象类实现了,把抽象类再向上抽象。抽象为行为规范,这是Person就可以实现cook接口和Teacher接口了。

5.抽象类是一种自下向上的一种抽象。这种模式在JAVA中用的比较多,其中在JAVASE集合部分中就有用到。

这是集合中Map中的一张框架图

我们会发现其中 TreeMap,HashMap,WeakHashMap均继承于抽象类AbstractMap,AbstractMap类实现接口Map。当我们打开AbstractMap源码时,我们会发现AbstractMap里面都实现了Map接口的方法。这样做的好处就是提高代码的复用性,继承AbstractMap的子类直接使用AbstractMap里面的方法而不必重写。

接口是自上向下的行为规范,实现该接口的子类必须按照接口的行为规范去编写,所以接口是自上向下的。

相关文章

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • 抽象类和接口的区别

    以下两篇文章介绍了接口和抽象类的概念接口概念抽象类概念 抽象类和接口的区别: 抽象类:需要使用abstract关键...

  • 接口和抽象类的区别

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

  • Java基础 (7) 抽象类和接口

    抽象特性的具体体现方式。1)抽象类区别和接口的区别2)抽象类的意义3)抽象类与接口的应用场景4)抽象类是否可以没有...

  • 浅谈抽象类和接口的区别

    最近我看了一些接口和抽象类的区别,在这里我将我的所总结的内容分享给大家。 抽象类和接口的区别 1.抽象类使用abs...

  • Java--接口和抽象类

    ·为什么需要接口?接口和抽象类的区别?  接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束...

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

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

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

  • 抽象类和接口区别

    区别 接口 抽象类

网友评论

      本文标题:浅谈抽象类和接口的区别

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