黑马程序员技术交流社区
标题:
继承子类中的this调用不到父类有参构造方法是怎么回事
[打印本页]
作者:
Laopozini123
时间:
2016-3-21 19:59
标题:
继承子类中的this调用不到父类有参构造方法是怎么回事
<blockquote>class Demo6_Extends {
复制代码
为什么这段代码在运行过程中提示无法将类Son中的构造器应用给指定类型.this("王五",25);
this是调用子类的构造方法,如果没有,不是会继承父类的构造方法吗?怎么会提示无法指定呢?求大神告知原因啊~
作者:
Laopozini123
时间:
2016-3-21 20:01
class a85 {
public static void main(String[] args) {
Son s1 = new Son();
System.out.println(s1.getName() + "..." + s1.getAge());
}
}
class Father {
private String name;
private int age;
public Father() {
System.out.println("Father 空参构造");
}
public Father(String name,int age) {
this.name = name;
this.age = age;
System.out.println("Father 有参构造");
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class Son extends Father {
public Son() {
this("王五",25);
System.out.println("Son 空参构造");
}
/*public Son(String name,int age) { //有参构造
super(name,age);
System.out.println("Son 有参构造");
}*/
}
复制代码
作者:
liangsai
时间:
2016-3-21 21:47
this是调用子类的构造方法,如果没有,不是会继承父类的构造方法吗?怎么会提示无法指定呢?求大神告知原因啊~r
那种情况用this调用的是成员方法而不是构造方法,this调用构造方法指的是本类的构造方法
作者:
lgdbest
时间:
2016-3-21 21:51
需要重写父类的带参构造方法吧
作者:
妄想年少轻狂
时间:
2016-3-21 21:51
构造方法不继承
作者:
Laopozini123
时间:
2016-3-21 22:04
妄想年少轻狂 发表于 2016-3-21 21:51
构造方法不继承
谢谢,非常感谢~
作者:
604840337
时间:
2016-3-21 22:07
你在空参里调用的是父类的构造方法 而不是成员变量
this在本类没有成员变量的情况下 才可以调用成员变量
用this也可以调用父类构造方法 但是会形成一个循环 没有多大意义
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2