目录
一、初步了解继承的内存布局
(1) 继承内存布局初探
看下面拥有继承关系的代码,并画出内存布局图:
public class Person {
public int age;
public void smile() {
System.out.println("Person_smile()_age_" + age);
}
}
class Student extends Person {
public double score;
public void study() {
System.out.println("Student_study()_score_" + score);
}
}
class MainTest {
public static void main(String[] args) {
Student s = new Student();
s.score = 95.5;
s.age = 8;
// Person_smile()_age_8
s.smile();
// Student_study()_score_95.5
s.study();
Person p = new Person();
p.age = 15;
// Person_smile()_age_15
p.smile();
}
}
⌨️ 通过 上篇文章 Java 的访问修饰符public,protected,private(封装、继承)可以知道:Student 类通过 extends 关键字继承了 Person 类后,Student 类中便拥有了 Person 类中非 private 的成员变量和成员方法。因此,Student 对象的引用 student 可以访问到父类(Person)的 age 属性和 smile 方法

