子类对父类的继承
- 子类在基于父类创建时,子类除了会继承父类的无参构造方法,还会继承父类中的成员变量和成员方法。
- 子类和父类成员变量同名时,父类中的同名变量被隐藏。
class Person{
String name;
int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public Person(){
this.name="男人";
this.age=30;
}
void pprint(){
System.out.println("Person: "+" Name:"+this.name+" age:"+this.age);
}
}
class Student extends Person{
String name;
int classno;
public Student(){
this.name="小明";
this.age=20;
}
public Student(String name,int age,int classno){
this.name=name;
this.age=age;
this.classno=classno;
}
void sprint(){
System.out.println("Student:"+" Name:"+this.name+" age:"+this.age+" classno:"+classno);
}
}
public class Main{
public static void main(String[] args){
Student obj1=new Student();
Student obj2=new Student("大王",100,1);
obj1.pprint();
obj2.pprint();
obj1.sprint();
obj2.sprint();
}
}
运行结果:
Person: Name:男人 age:20
在调用pprint方法时,println方法中的this.name是用的Person中的name,而在Student obj1=new Student();后先会执行Person中的无参构造方法,初始化Person中的name。也就是说Student在创建对象时,父类和子类中的无参构造方法执行中的两个this.name指不同的name。
Person: Name:男人 age:100
Student: Name:小明 age:20 classno:0
Student: Name:大王 age:100 classno:1