美文网首页
JAVA 中抽象类与接口

JAVA 中抽象类与接口

作者: barry_di | 来源:发表于2017-03-05 22:08 被阅读0次

一、抽象类与接口的选择依据

开发中选择什么时候选择接口和什么时候选择抽象类。我们可以通过抽象类和接口表现的本质关系来进行确定到底使用抽象类还是接口。
1.抽象类:抽象类往往表示的是一种“is a” 的关系。例如:“人”和”男人“,由于“男人”是人,因此“人”就是一个抽象的类,而“男人”就是一个子类。
2.接口:接口常常描述的是一种“契约”的关系。我们以合同的案例来进行说明,如:我们有一个“劳动合同”,劳动者和雇佣者要想建立劳动关系都需要进行签订合同。那么合同就是一个协议,签订就是这个合同定义的行为。若劳动者要和雇佣者建立关系,哪么就必须签订合同,因此劳动者和雇佣者就必须实现合同中的签订行为,从而建立雇佣关系。

通过以上的解释应该明白什么时候使用接口和抽象类。

二、抽象类和接口的区别

1.抽象类是需要子类进行继承,而接口则是需要进行实现的。
2.抽象类可以进行方法的声明和方法的实现,而接口只能声明方法。
3.抽象类定义的变量只是一个成员变量。而接口定义的变量则是一个全局的静态常量值。
4.抽象类定义的抽象方法子类必须进行实现的。若子类是一个抽象类的情况下,可以不实现父抽象类的方法。接口在JAVA8后接为了兼容Lambda提供了一个新的关键字“Default”,在接口中的方法只要使用了“Default”就可以在接口中进行设定默认的方法,当子类没有进行实现的情况下,使用接口中的默认方法。若没有使用“Default”定义的方法,子类必须进行实现的。
5.抽象类可以不声明抽象方法。
6.抽象方法要被实现,所以不能是静态的,也不能是私有的。接口中定义的方法可以是私有也可以是公有的。
7.抽象类只能单继承,而接口可以进行多继承。

三、抽象类和接口的相似点

1.抽象类和接口都不能进行实例化的,只能通过子类实现的。

相关文章

  • JAVA

    JAVA java中接口与抽象类的区别? 简述jvm的内存布局? java对象创建的过程? java重载与重写的区...

  • Kotlin---接口与继承

    接口与抽象类的区别 同样在Kotlin中也有接口的概念,与Java不同的是,Kotlin中的接口可以定义变量,但是...

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • 谈谈 接口与抽象类

    话不多说,直奔主题。先聊一聊 接口与抽象类的区别: 用法不同。接口需要被实现,而抽象类需要被继承。在Java中是单...

  • 2019Java工程师面试题汇总,全会的话月薪至少3W+

    Java基础知识 Java中==和equals和hashCode的区别int与integer的区别抽象类的意义接口...

  • Kotlin学历之抽象类与接口

    简述 Kotlin 中的抽象类和接口与 Java 8 类似,同样用到abstract、interface关键字,与...

  • Android-知识点总结

    Java知识点 抽象类与接口的区别: 抽象类可以有方法的具体实现,接口不可以。 由于Java单继承的特性,子类只能...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • java抽象类与接口的区别是什么?

    关于java抽象类与接口的文章早已是非常多了,本文是对我个人过往学习java的经验,理解及应用抽象类与接口的一个总...

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

    学习Java基础知识,打通面试关~十三接口与抽象类面试常客:谈谈你对抽象类和接口的理解 接口用interface修...

网友评论

      本文标题:JAVA 中抽象类与接口

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