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

Java中的抽象类与接口

作者: topone37 | 来源:发表于2019-11-18 16:40 被阅读0次

前提背景在面试到Java基础知识的时候,总喜欢问抽象类接口的区别,在这里记录一下自己复习的笔记

抽象类 abstract class

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

  • 使用abstract修饰的类
  • 不直接可以实例化
  • 内部可以声明abstract修饰的方法(只有方法头,没有方法体)
  • 内部也可以声明普通的成员方法(包含方法头,和方法体)

    思考:
    抽象类内部是不是必须要有抽象方法呢? 不是必须!
    抽象方法是不是必须声明在抽象类内部呢? 必须的!

接口 interface

  • 使用interface修饰的类
  • 不直接可以实例化
  • 内部只能声明public abstract方法 (只有方法头,没有方法体,public abstract 声明可以不写,因为默认)

区别与联系

  • 区别
    • 抽象类中可以有普通的成员方法,接口只有抽象方法
    • 抽象类中的方法可以有public,private,protected修饰方法,接口只有public
    • 抽象类可以有构造器,接口没有构造器,抽象类依然是属于类的范畴,(抽象类如果定义了含有参数的构造函数 Parent(int a),子类集成时必须在构造函数中显式调用父类的改构造器进行初始化super(a))
    • Java中只能集成一个类,可以实现多个接口
  • 联系
    • 接口声明能力,抽象类提供默认的实现,在编码时可以选择全部重写还是部分重写来实现自己的逻辑,例如Collection接口和对应的AbstractCollection抽象类

其他思考

  • 抽象类的意义
    • 对实现其的子类一种强制规范,子类必须实现抽象父类的所有抽象方法

参考链接

相关文章

  • JAVA

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

  • Kotlin---接口与继承

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

  • Java基础-抽象类和接口

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

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

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

  • Kotlin学历之抽象类与接口

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

  • 谈谈 接口与抽象类

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

  • Android-知识点总结

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

  • java抽象类和接口小记

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

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

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

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

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

网友评论

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

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