当前位置: 代码迷 >> Java相关 >> 继承类构造函数问题
  详细解决方案

继承类构造函数问题

热度:289   发布时间:2006-10-19 21:43:00.0
继承类构造函数问题

class Person
{
public String name;
public int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void setinfo()
{
System.out.println("name="+name+",age="+age);
}
}
class student extends Person
{
public String school;
student()
{
super("chengsheng",15);
}
}
class teststudent
{
public static void main(String args [])
{
student st=new student();
st.name="Nioko";
st.age=20;
st.setinfo();

}
}
这个程序的构造函数的调用是怎么调用的啊 我有点不明白啊 望 指点

搜索更多相关的解决方案: 继承  构造  函数  

----------------解决方案--------------------------------------------------------
student类调用父类的构造方法
用super();
----------------解决方案--------------------------------------------------------
在执行 student st=new student();这句时

已经调用了父类的构造函数Person(String name,int age)
{
this.name=name;
this.age=age;
}
也就是说此时name的值是chengsheng age的值是15

然后又为name和age重新赋值

如果你把st.name="Nioko";
st.age=20;
给去掉..那么输出的就是chengsheng 15


----------------解决方案--------------------------------------------------------

问一下楼主: 这是你从书上看到的还是自己写的?
如果是从某本书上看到的话,权你赶紧换书,我觉得好多都不太规范,虽然我也刚学java
象你定义的变量都是public 。。。。。。。
我写的这个或许还好一点吧
public class Person {
private String name;

private int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}

public void setinfo() {
System.out.println("name=" + name + "\nage=" + age);
}
}


public class Student extends Person {
private String school;

Student(String name, int age, String school) {
super(name, age);
this.school = school;
}

public void setinfo() {
super.setinfo();
System.out.println("school=" + school);

}
}

public class Test {
public static void main(String args[]) {
Student st = new Student("Nioko", 20, "xidian University");

st.setinfo();
}

}



----------------解决方案--------------------------------------------------------

注意一个问题,就是在子类继承父类的时候,会有一个super的关键字,去调用父类只中参数相匹配的函数


----------------解决方案--------------------------------------------------------
4楼,public类只能写一个
----------------解决方案--------------------------------------------------------
晕  看样子我也要换书了   我平时写代码  基本上都用的是public
----------------解决方案--------------------------------------------------------
  相关解决方案