java中子类继承父类的子类重写父类构造方法法吗

2016年7月 扩充话题大版内专家分月排行榜第二
2017年1月 Java大版内专家分月排行榜第三2016年12月 扩充话题大版内专家分月排行榜第三2016年10月 扩充话题大版内专家分月排行榜第三2016年6月 扩充话题大版内专家分月排行榜第三
匿名用户不能发表回复!|子父类中的构造函数的特点:  
1.在子类构造对象时,发现,访问子类构造函数时,父类构造函数也运行了。& &原因是:在子类的构造函数中第一行有一个默认的隐式语句。 super();
& &类似于this(); & this();调用的是本类的构造函数
2.子类构造函数默认调用的是父类中的空参数构造函数,如果需要调用父类中带参数的构造函数,可以在子类构造函数中定义。如:super(6);
3.如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用父类中哪个构造函数。
4.同时子类构造函数中如果使用this调用了本类构造函数时,那么super就没有了,因为super和this都只能定义第一行,所以只能有一个。但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数。
5.Object是所有类的父类。
注意:supre语句必须要定义在子类构造函数的第一行。因为父类的初始化动作要先完成。
1 class Fu
System.out.println("A fu run");
<span style="color: #
<span style="color: #
System.out.println("B fu run..."+x);
<span style="color: #
<span style="color: # }
<span style="color: # class Zi extends Fu
<span style="color: # {
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
//super();//调用的就是父类中的空参数的构造函数。
<span style="color: #
//类似于this() 调用的是本类的构造函数
<span style="color: #
<span style="color: #
System.out.println("C zi run"+num);
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # //
super(x); //如果需要调用父类中带参数的构造函数,可以在子类构造函数中定义。
<span style="color: #
System.out.println("D zi run "+x);
<span style="color: #
<span style="color: # }
<span style="color: #
<span style="color: # class
ExtendsDemo4
<span style="color: # {
<span style="color: #
public static void main(String[] args)
<span style="color: #
<span style="color: #
new Zi(6);
<span style="color: #
<span style="color: # }
<span style="color: # class Demo//extends Object
//Object是所有类的父类
<span style="color: # {
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # }
阅读(...) 评论()2被浏览264分享邀请回答暂时还没有回答,开始写第一个回答父类的构造方法有参时,子类无法继承?
父类的构造方法有参时,子类无法继承?
子类怎么显式调用父类有参构造?我写了,总是错!
子类构造中调用父类构造,必须要写在第一行。
写在第一行也错了,你贴个代码上来看看呗
写下你的评论...
那怎么解决呢?难道有参的类就不能有子类吗?
父类显式写出无参构造
很眼熟你,话说我回答了你这么多问题,你就不打算采纳一个吗 - -
点击展开后面1条评论
写下你的评论...
super括号里我写的“int a”去了,怪不得错了!
写下你的评论...
当然,我得弄明白,也得让别人参考的明白
- - 问题是你有点愣头青,就不能先采纳我再刨根问底得问吗,我又不会得了你的采纳就不理了。你这么多问题也完全可以拆分成多个问题提问啊,这样大家都受益,你采纳了别人也是有积分的。
写下你的评论...
写下你的评论...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-2首先来看一下下面这个例子:
结果有些和想象中的不一样吧。
原因如下:其实每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
所以父类中的构造方法是不能继承的,但是在实例化子类的时候会调用父类的构造方法,这样就能解释下面这种情况了。
阅读(...) 评论()}

我要回帖

更多关于 java子类继承父类 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信