java继承后构造函数的继承机制
来源:互联网 发布:4g网络电话软件 编辑:程序博客网 时间:2024/06/06 01:40
最近在复习一些java基础的东西。发现继承后构造函数的继承很有意思,所以进行了一下测试:
- 测试1-如果父类不主动创建构造函数则子类创建构造函数没有限制。
- 测试2-如果父类创建不含参构造函数则子类创建构造函数没有限制且先执行父类的构造函数。
- 测试3-如果父类创建含参构造函数则子类创建构造函数需要先super父类函数且先执行父类的构造函数。
- 测试4-如果父类创建多个含参构造函数则子类创建构造函数需要先super指定的父类函数(如父类包含无参构造函数则子类可以不super父类函数同测试2)。
测试1-如果父类不主动创建构造函数则子类创建构造函数没有限制
父类
public class Father {}
子类
public class Child extends Father { public Child(String a, int b) { System.out.println("这是子类的构造函数"); } public static void main(String[] args) { Child t3 = new Child("xx",1); }}
结果
这是子类的构造函数
测试2-如果父类创建不含参构造函数则子类创建构造函数没有限制且先执行父类的构造函数
父类
public class Father { public Father() { System.out.println("这是父类的构造函数"); }}
子类
public class Child extends Father { public Child(String a, int b) { System.out.println("这是子类的构造函数"); } public static void main(String[] args) { Child t3 = new Child("xx",1); }}
结果
这是父类的构造函数这是子类的构造函数
测试3-如果父类创建含参构造函数则子类创建构造函数需要先super父类函数且先执行父类的构造函数
父类
public class Father { public Father(int a) { System.out.println("这是父类的构造函数"); }}
子类
public class Child extends Father { public Child(String a, int b) { super(1); System.out.println("这是子类的构造函数"); } public static void main(String[] args) { Child t3 = new Child("xx",1); }}
结果
这是父类的构造函数这是子类的构造函数
测试4-如果父类创建多个含参构造函数则子类创建构造函数需要先super指定的父类函数(如父类包含无参构造函数则子类可以不super父类函数同测试2)
父类
public class Father { public Father(int a) { System.out.println("这是父类的构造函数1"); } public Father(String b) { System.out.println("这是父类的构造函数2"); }}
子类
public class Child extends Father { public Child(){ super("a"); System.out.println("这是子类的构造函数调用2"); } public Child(String a, int b) { super(1); System.out.println("这是子类的构造函数调用1"); } public static void main(String[] args) { Child t3 = new Child("xx",1); Child t4 = new Child(); }}
结果
这是父类的构造函数1这是子类的构造函数调用1这是父类的构造函数2这是子类的构造函数调用2
综上测试得出如下结论:
1、如果父类不主动创建构造函数或者父类有无参的构造函数则子类可以不考虑父类的构造函数。
2、如果子类需要继承父类的含参构造函数则需要使用super命令(如果父类包含多个含参构造函数则依据参数使用super命令)
3、如果父类建立了构造函数且都含有参数,则子类必须使用super命令。
0 0
- java继承后构造函数的继承机制
- Java构造函数的继承
- Java 构造函数的“继承”
- java构造函数的继承
- 继承机制下的构造函数
- java 继承 构造函数
- java继承构造函数
- Java构造方法的继承机制
- 构造函数的继承
- 继承的构造函数
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- 构造函数的继承
- JAVA 继承 构造函数的执行顺序
- Java继承时构造函数的调用
- Java构造函数的继承问题
- Java继承时构造函数的调用
- 正则表达式
- spark mllib predict stock price
- php超时处理
- XcodeXcode环境变量以及路径设置
- IIS不认SVG,WOFF/WOFF2这几个文件类型
- java继承后构造函数的继承机制
- hive常用函数使用
- Ubuntu 常用快捷键
- easyui二级联动
- 4-3 简单求和
- Android 开发的五大开源网站
- Android性能优化案例研究(上)
- TextView右边箭头的显示
- Item 45:使用成员函数模板来接受所有兼容的类型