本帖最后由 郑瑞 于 2013-5-9 19:07 编辑
abstract class Person {
private String name;
private int age;
public Person(String name,int age){
this.setName(name);
this.setAge(age);
}
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 Student extends Person{
private String school;
public Student(String name,int age,String school){
super(name,age);
/*
this.setName(name);
this.setAge(age);
*/
this.setSchool(school);
}
public void setSchool(String school){
this.school = school;
}
public String getSchool(){
return school;
}
public String getInfo(){
return "姓名: "+super.getName()+", 年龄: "+super.getAge()+", 学校: "+this.getSchool();
// return "姓名: "+this.getName()+", 年龄: "+this.getAge()+", 学校: "+this.getSchool();
}
}
class abstractDemo{
public static void main(String args[]){
Student stu = new Student("张三",20,"清华");
System.out.println(stu.getInfo());
}
}
//第一块:super(name,age);
/*
this.setName(name);
this.setAge(age);
*/
为什么用this会报错。
第二块:return "姓名: "+super.getName()+", 年龄: "+super.getAge()+", 学校: "+this.getSchool();
// return "姓名: "+this.getName()+", 年龄: "+this.getAge()+", 学校: "+this.getSchool();
用this却不会报错呢。
this可用于访问本类中的方法,如果本类中没有此方法,就从父类中继续查找。
可是为什么第二块不报错而第一块却报错呢? |