2 liven0917 liven0917 于 2016.05.03 08:46 提问

java 有参构造中的值给不进去,很蛋疼,谁帮我看看到底哪出了问题

class Demo_exdents {
public static void main(String[] args) {
Son s1 = new Son();
s1.setname("张三");
s1.setage(23);
System.out.println(s1.getname() + " " + s1.getage());
System.out.println("----------------------------");
Son s2 = new Son("李四",24);
System.out.println(s2.getname() + " " + s2.getage());
}
}

class Father {
private String name ;
private int age;
public Father() {
System.out.println("Father 空参构造");
}
public Father(String name , int 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() {

    System.out.println("Son   空参构造");
}
public Son(String name , int age) {
    super(name,age);
    System.out.println("Son   有参构造");
}

}

7个回答

qq_32371277
qq_32371277   2016.05.03 11:11
已采纳

你在父类有参构造中也得传值呀,不能光print

liven0917
liven0917 你说的太对了,我漏掉了.初学,谢谢
一年多之前 回复
keyduns
keyduns   2016.05.03 18:37

get,set方法是手动敲的吗,正常应该是 getName,setName,getAge,setAge

caozhy
caozhy   Ds   Rxr 2016.05.03 09:40
 public Father(String name , int age) 
{
setname(name);
setage(age);
}
King_YI
King_YI   2016.05.03 10:49

public Son(String name , int age) {
super(name,age);
System.out.println("Son 有参构造");
}

这里别用 super();

u010725245
u010725245   2016.05.03 11:35

属性get、set方法中,get或者set后面的单词首字母要大写,不然值进不去!

qq_34867754
qq_34867754   2016.05.03 15:32

楼上正解,super方法最好不要用

qq_20079725
qq_20079725   2016.05.03 08:50

有参构造也得给他值呀。你试试在father的有参构造中加上 this.name=name
this.age=age

liven0917
liven0917 谢谢,你是正确的.
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!