当前位置:主页 > 查看内容

普歌-允异团队-【Java知识点】这些Java学习路上你必须知道的底层

发布时间:2021-04-22 00:00| 位朋友查看

简介:【Java知识点】面试中会问到的那些小知识2为什么接口中没有构造方法而抽象类中有构造方法 前言 一、接口 二、抽象类 三、构造方法 接口与抽象类的语法区别 总结 参考文章 前言 本文与之后的几篇文章将是某整理的学习笔记在此与诸位分享 以下是本篇文章正文内……

【Java知识点】面试中会问到的那些小知识(2),为什么接口中没有构造方法而抽象类中有构造方法?

前言

本文与之后的几篇文章将是某整理的学习笔记,在此与诸位分享


以下是本篇文章正文内容,该系列会持续更新,敬请关注。

正如面向对象四大特性(抽象、封装、继承、多态)所述,定义类的过程就是抽象和封装的过程,而接口与抽象类则是对实体类进行更高层次的抽象,仅定义公共行为和特征。

接口与抽象类的共同点是都不能被实例化,但可以定义引用变量指向实例对象。

先来了解接口、抽象类、构造方法的概念:

一、接口

  • 接口是一种行为规范
  • 在Java编程语言中是一个抽象类型,是抽象方法的集合
  • 一个类通过实现接口的方式,来实现接口中的抽象方法
  • 接口侧重定义任意的类有没有相同语义的方法,它是一个一经定义不轻易更改的规范

二、抽象类

  • 如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类就是抽象类
  • 抽象类侧重于归纳同一父类的子类的共同特征,例如属性、方法

三、构造方法

  • 构造方法是方法名与类名相同的特殊方法,在新建对象时调用
  • 可以通过不同的构造方法实现不同方式的对象初始化
  • 它用来在对象初始化前对对象进行一些预处理,提供了实例化一个具体东西的入口

接口与抽象类的语法区别

语法维度抽象类接口
定义关键字abstractinterface
子类继承或实现关键字extendsimplements
方法实现可以有不能有,但在JDK8及以后,允许有default实现
方法访问控制符无限制有限制,默认是public abstract类型
属性访问控制符无限制有限制,默认是public static final类型
静态方法可以有不能有,但在JDK8及以后,允许有
static{}静态代码块可以有不能有
本类型之间扩展单继承多继承
本类型之间扩展关键字extendsextends

总结

为什么接口中不能有构造方法,而抽象类中有构造方法

构造方法的使命就是在构造方法时进行传参操作

  • 由此可以认为,因为接口定义时并不包含参数列表,所以接口中不能有也没必要有构造方法
    • 接口只是声明,不一定要进行初始化,即使进行初始化也可以在实现接口的类中初始化
  • 抽象类中需要有构造方法,是供子类创建对象时,初始化父类成员使用的
    • 因为子类的构造方法中,有默认的super(),需要访问父类构造方法

参考文章

《码出高效:Java开发手册》
java接口有构造函数吗_接口为什么不能有构造函数
接口和抽象类的区别,实不相瞒,我忘记了?

同时也推荐看看这些文章

普歌-允异团队-【Java知识点】这些Java学习路上你必须知道的底层原理(1)Java类加载的机制/static、final关键字/堆、栈
普歌-逆越团队:Java基础知识点(运行背景,程序开发三步骤,入门知识点)


至此文章就结束啦,欢迎在评论区留言
同时也祝看完本篇的你在未来的时间里收获更多知识!

  • 作者:CEMER216
  • 本文版权归作者和CSDN共有,欢迎转载,且在文章页面明显位置给出原文链接,未经作者同意必须保留此段声明,否则保留追究法律责任的权利。
;原文链接:https://blog.csdn.net/weixin_51978362/article/details/115411095
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐