super() 是调用父类的构造函数啦,如果在代码中无super()的话,还会不会调用父类的构造函数?

class Person { public static void prt(String s) { System.out.println(s); } Person() { prt("A Person."); } Person(String name) { prt("A person name is:" + name); } }

public class Chinese extends Person { Chinese() { super(); // 调用父类构造函数(1) prt("A chinese.");// (4) } Chinese(String name) { super(name);// 调用父类具有相同形参的构造函数(2) prt("his name is:" + name); } Chinese(String name, int age) { this(name);// 调用当前具有相同形参的构造函数(3) prt("his age is:" + age); } public static void main(String[] args) { Chinese cn = new Chinese(); cn = new Chinese("kevin"); cn = new Chinese("kevin", 22); } }

结果:

A Person. A chinese. A person name is:kevin his name is:kevin A person name is:kevin his name is:kevin his age is:22

可见,子类在构造自己时会调用父类相关的构造函数的

super()就调用父类无参的构造函数

super(name)   父类1参数构造函数

this(name)   自己的1参数构造函数

如果不写super会如何?

public class Chinese extends Person { Chinese() { //super(); // 调用父类构造函数(1) prt("A chinese.");// (4) } Chinese(String name) { //super(name);// 调用父类具有相同形参的构造函数(2) prt("his name is:" + name); } Chinese(String name, int age) { //this(name);// 调用当前具有相同形参的构造函数(3) prt("his age is:" + age); } public static void main(String[] args) { Chinese cn = new Chinese(); cn = new Chinese("kevin"); cn = new Chinese("kevin", 22); } }

结果

A Person. A chinese. A Person. his name is:kevin A Person. his age is:22

可以看到子类还是会调用父类的构造函数,是无参数的那个构造函数

super() 有什么用?相关推荐

  1. super(Student,self).__init__()初始化的是什么东西?

    继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题? 2015-04-04源自:python进阶 5-17642 浏览2 回答 最佳回答 2015-05-05 1 super(Stude ...

  2. Google Pixel 超分辨率--Super Resolution Zoom

    Google Pixel 超分辨率–Super Resolution Zoom Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果. 文章的主要贡 ...

  3. 【译】为什么要写super(props)

    译注: 原文地址 https://overreacted.io/why-do-we-write-super-props/ 正文 我听说Hooks是新的热点.好笑的是,我想通过描述一些关于class组件 ...

  4. java super快速生成_为什么当我使用编辑器代码生成器时,eclipse会在构造函数中自动添加一个java super()方法?...

    正如@Kon在他的评论中提到的, Java中的一个空构造函数包含对超类构造函数的隐式调用. 此外,没有明确调用super()的非空构造函数将在顶部具有隐式调用. 离开super()调用是唯一的时候,如 ...

  5. java super是引用变量吗_Java中super的几种用法并与this的区别

    1.     子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  6. def __init__(self)是什么意思_子类必须调用 super().__init__() 吗?

    我新开了专栏 <恍然大明白>,如果关注 Python 底层实现,请移步 恍然大明白​www.zhihu.com 今天遇到一个有意思的问题,小组一位小哥在开发中,遇到了传说中的 " ...

  7. This和Super关键字的对比

    this和Super关键字 this和Super关键字的对比 Super关键字的用法如下: 1. super关键字代表了父类空间的引用: 2. super关键字的作用: 3. super关键字调用父类 ...

  8. java中super用来定义父类,Java中super的几种用法及与this的区别

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  9. android中方法调用super(..)的相关知识

    java中的多态有重写 方法被子类重写后 父类的原方法就会被隐藏 当你又需要调用父类所定义的原方法  这个时候就可以用super来调用 super调用指向了父类,在一些调用里可以很巧妙的利用,比如监听 ...

  10. Java中的两个关键字——super、this

    Java中的两个关键字--super.this 神话丿小王子的博客主页 一.super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 sup ...

最新文章

  1. 【CentOS7-Python系列】之一【VMwareWorkstation安装CentOS7】
  2. spring boot security ajax_Spring 和 SpringBoot 之间到底有啥区别?
  3. Linux内核Crash分析
  4. python圆面积函数_Python基础函数必学
  5. git服务器安装位置,git服务器地址变更
  6. 已创建仓库后 github提交流程
  7. PHP运行模式的深入理解
  8. 设置 路由模式 桥接模式
  9. Windows Phone 项目实战之账户助手
  10. 2022下半年软考冲刺,这些资料就是45分通关密码
  11. 超市微信小程序怎么做_小程序怎么做的 超市微信小程序怎么做
  12. python下载itchat失败_Python itchat库的使用,pythonitchat,方法,小记
  13. LaTex 在线编辑网站—overleaf简介
  14. 心知天气使用签名验证方式
  15. 马云:2019年两大行业,会成就一批千万富翁!
  16. mp2格式怎么转换mp3?
  17. 用Java做的模拟“双色球”机选号码
  18. 最适合汽车软件开发的生态系统是什么?
  19. 计算机是怎样跑起来的笔记摘要
  20. 橘子平台origin安装闪退?

热门文章

  1. 系统设计文档包含内容
  2. Oracle的select语句进阶和函数
  3. 苇岸的《二十四节气》
  4. XRImmersal×PLATEAUで巨大AR
  5. 一键部署openvpn服务端和客户端(已写成脚本)
  6. 博弈论(巴什博奕/尼姆博奕/威佐夫博奕)详解
  7. IDEA项目中不能引用pom文件中添加的依赖,External Libraties中也没有生成对应的目录
  8. 谈判中,如何快速建立和谐的关系
  9. 算法分析与设计第二版(李春葆)第一章概论
  10. 百度文库免费复制word文档的纯文字