标题: 继承问题在内存中是怎样运行的 [打印本页] 作者: zhangwenjin 时间: 2016-6-28 22:38 标题: 继承问题在内存中是怎样运行的 class Person {
private String name; //名字
private int age; //年龄
Person(){ //空参构造函数
}
Person(String name,int age){ //有参构造函数
this.name = name;
this.age = 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;
}
public void eat(){ //定义共同方法
System.out.println("吃饭");
}
}
class Teacher extends Person { //Teacher类继承Person类
Teacher(){} //空参构造函数
Teacher(String name,int age){ //有参数构造函数
super(name,age);
}
public void teach(){ //定义特有方法
System.out.println("老师讲课");
}
}
class Student extends Person { //Student类继承Person类
Student(){}/空参构造函数
Student(String name,int age){ //有参构造函数
super(name,age);
}
public void study(){ //定义特有方法
System.out.println("学生学习");
}
}
class Test2_Person {
public static void main(String[] args) {
Teacher p = new Teacher("蒋老师",25);
System.out.println(p.getName()+p.getAge());
p.eat();
p.teach();
System.out.println("**************************************");
Student s = new Student("张三",21);
System.out.println(s.getName()+s.getAge());
s.eat();
s.study();
}
}
父类的成员变量被私有 不能被子类继承 ,但是能赋值,这在内从中是什么样子的? 作者: 糊图 时间: 2016-6-28 23:02
通过子类中的有参构造创建对象,把参数通过子类有参构造中的super方法传递给父类的有参构造,这样就可以对变量进行赋值了作者: zhangwenjin 时间: 2016-6-28 23:15 本帖最后由 zhangwenjin 于 2016-6-28 23:16 编辑
我知道是这样的,我是想知道既然父类中的成员变量被private修饰,也就是不能被子类继承,但是能赋值,这个过程在内从是怎么具体实现的?作者: 迅雷 时间: 2016-6-28 23:27
Teacher p = new Teacher("蒋老师",25);调用Teacher类的有参构造,super(name,age)访问父类Person的有参构造,将name"蒋老师"赋值给this.name,把25赋值给this.age,