super() 有什么用?
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() 有什么用?相关推荐
- super(Student,self).__init__()初始化的是什么东西?
继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题? 2015-04-04源自:python进阶 5-17642 浏览2 回答 最佳回答 2015-05-05 1 super(Stude ...
- Google Pixel 超分辨率--Super Resolution Zoom
Google Pixel 超分辨率–Super Resolution Zoom Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果. 文章的主要贡 ...
- 【译】为什么要写super(props)
译注: 原文地址 https://overreacted.io/why-do-we-write-super-props/ 正文 我听说Hooks是新的热点.好笑的是,我想通过描述一些关于class组件 ...
- java super快速生成_为什么当我使用编辑器代码生成器时,eclipse会在构造函数中自动添加一个java super()方法?...
正如@Kon在他的评论中提到的, Java中的一个空构造函数包含对超类构造函数的隐式调用. 此外,没有明确调用super()的非空构造函数将在顶部具有隐式调用. 离开super()调用是唯一的时候,如 ...
- java super是引用变量吗_Java中super的几种用法并与this的区别
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- def __init__(self)是什么意思_子类必须调用 super().__init__() 吗?
我新开了专栏 <恍然大明白>,如果关注 Python 底层实现,请移步 恍然大明白www.zhihu.com 今天遇到一个有意思的问题,小组一位小哥在开发中,遇到了传说中的 " ...
- This和Super关键字的对比
this和Super关键字 this和Super关键字的对比 Super关键字的用法如下: 1. super关键字代表了父类空间的引用: 2. super关键字的作用: 3. super关键字调用父类 ...
- java中super用来定义父类,Java中super的几种用法及与this的区别
综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...
- android中方法调用super(..)的相关知识
java中的多态有重写 方法被子类重写后 父类的原方法就会被隐藏 当你又需要调用父类所定义的原方法 这个时候就可以用super来调用 super调用指向了父类,在一些调用里可以很巧妙的利用,比如监听 ...
- Java中的两个关键字——super、this
Java中的两个关键字--super.this 神话丿小王子的博客主页 一.super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 sup ...
最新文章
- 【CentOS7-Python系列】之一【VMwareWorkstation安装CentOS7】
- spring boot security ajax_Spring 和 SpringBoot 之间到底有啥区别?
- Linux内核Crash分析
- python圆面积函数_Python基础函数必学
- git服务器安装位置,git服务器地址变更
- 已创建仓库后 github提交流程
- PHP运行模式的深入理解
- 设置 路由模式 桥接模式
- Windows Phone 项目实战之账户助手
- 2022下半年软考冲刺,这些资料就是45分通关密码
- 超市微信小程序怎么做_小程序怎么做的 超市微信小程序怎么做
- python下载itchat失败_Python itchat库的使用,pythonitchat,方法,小记
- LaTex 在线编辑网站—overleaf简介
- 心知天气使用签名验证方式
- 马云:2019年两大行业,会成就一批千万富翁!
- mp2格式怎么转换mp3?
- 用Java做的模拟“双色球”机选号码
- 最适合汽车软件开发的生态系统是什么?
- 计算机是怎样跑起来的笔记摘要
- 橘子平台origin安装闪退?