java中,子类初始化时一定要调用父类的构造方法,不调用行吗?
一定会调用
原因是这样的:
因为子类继承了父类,那么就默认地含有父类的公共成员方法和公共成员变量,这些方法和变量在子类里不再重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现什么情况呢?当然就是抛异常啊!通过调用父类的构造方法来初始化父类的公共成员方法和公共成员变量,子类才可以正常使用父类方法或变量。
所以,Java虚拟机会在你初始化子类的时候默认的初始化子类的父类。而且是一层一层地往上递进!
结果有些和想象中的不一样吧。
原因如下:父类的构造方法是不会被子类继承,但子类初始化时会调用父类构造方法。但为了方便,子类构造方法中会有一个隐式的super()来调用父类中的无参数构造方法。
如果父类有多个构造方法,子类默认还是调用父类无参构造方法。
如果子类调用了父类的有参构造方法,就不会再有隐式调用父类的无参构造方法,必须显式调用。
java中,子类初始化时一定要调用父类的构造方法,不调用行吗?相关推荐
- java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...
[情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...
- 在 Java 中定义一个不做事且没有参数的构造方法的作用
抽象类不能创建对象,那么抽象类中是否有构造方法? 必须有构造器,因为这个构造器不是给抽象类用的,而是给子类创建对象时候用的,可能有初始化变量的需要,子类的构造方法在一开始会调用父类的构造方法,调用父类 ...
- java根据父类找子类_在java中实现多态时,可以通过父类变量引用子类的对象。_学小易找答案...
[单选题]对于字符串s="java",下面哪个选项返回字符在字符串中'v'的位置( ). [简答题]汽车核保的主要内容 [判断题]在java中产生子类对象时,直接调用子类的构造方法 ...
- c++与java中子类中调用父类成员的方法
java中: import java.util.Scanner; public class ClassTest{ public static void main(String args[]){ chi ...
- Java中程序初始化的顺序
1,在一个类的内部(不考虑它是另一个类的派生类):很多人认为,类的成员变量是在构造方法调用之后再初始化的,先不考虑这种观点的正确性,先看一下下面的代码: [java] view plaincopy c ...
- 关于JAVA中子类和父类的构造方法
本篇文章总结了一些关于Java构造方法的常见问题. 为什么创建了一个子类对象会调用其父类的构造方法 如下代码示例: package simplejava;class Super {String s;p ...
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- 转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性
原文地址:Java中子类是否可以继承父类的static变量和方法而呈现多态特性 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明 ...
- java中super用来定义父类,定义子类必须使用的关键字是 在java中子类若要继承父类,需要使用的关键字是什么...
java定义接口时需要使用的关键字是 定义接口复使用的关键字是"interface",中文意思"接口.解释:通常接口都是制为了定义百某些规范,而在接口中只定义了方法,而没 ...
最新文章
- sublime text 的小细节设置,让你的代码更优美
- torchvision 笔记:transforms.Normalize()
- android app 集成 信鸽推送
- 彻底卸载nodejs和npm然后使用nvm
- 树形DP+树状数组 HDU 5877 Weak Pair
- 城市大数据的生态模型及应用
- 转载:一步一步和我学Apache JMeter
- 多维数组和矩阵----子数组最大累加和
- add git 的文件 移除_本地删除文件后让git服务器也删除这个文件
- 通信与信息系统专业排名全国前十的…
- 峰值,峰峰值,有效值的基本知识
- fgo7.27服务器维护,【FGO日服】维护通知(7/12)
- 医院计算机人员考试试题,医院信息科考试试题及答案-
- 枸杞的功效与食用方法
- System Power Tools Suite
- 达梦数据库常用函数——字符串函数
- 2023年计算机考研数学一考试大纲
- PLC学习之路001
- SpringBoot 空指针处理总结
- oracle exp导出工具,Oracle EXP/IMP 导出导入工具的使用