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
----------------解决方案--------------------------------------------------------