首页 > 代码库 > JAVA继承时构造函数的问题
JAVA继承时构造函数的问题
今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了。
下面是我个人的总结:
先创建一个父类,里面有两个构造函数:
public class Jisuan { protected int a=4; //构造函数1 Jisuan() { System.out.println("父类的无参数构造函数"); } //构造函数2 Jisuan(int a) { System.out.println("父类的有参数构造函数"); } }
再创建一个子类,里面也有两个构造函数:
public class JisuanKid extends Jisuan { //构造函数3 public JisuanKid() { System.out.println("子类的无参数构造函数"); } //构造函数4 public JisuanKid(int a) { System.out.println("子类的有参数构造函数"); }}
再创建第三个类;
public class TestArray { public static void main(String[] args){ JisuanKid jisuan = new JisuanKid(3);}
}
1、此时执行:
结果:
父类的无参数构造函数
子类的有参数构造函数
2、去掉构造函数1
结果:出错
3、去掉构造函数1和2
执行结果:
子类的有参数构造函数
4、去掉构造函数4
执行结果:
父类的无参数构造函数
出现错误
结论如下:
1.子类不能继承父类的构造函数
2.若父类中无任何构造函数,则系统默认加上无参数构造函数,创建子类对象时会调用父类的默认无参数构造函数创建父类。然后再调用子类的相应构造函数
3.若父类中有带参数构造函数,则系统不会添加默认无参数构造函数,创建子类对象时会调用父类的无参数构造函数创建父类对象,因为此时父类没有无参数构造函数,故会报错。
4.另外还可以在子类的构造函数中,使用super()或者super(参数名)来使用父类的无参数构造函数和带参数构造函数
JAVA继承时构造函数的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。