目录
- 一、初步了解继承的内存布局
- (1) 继承内存布局初探
- (2) Object 类
- (3) 同名的成员变量
- 二、更复杂的继承的内存布局
一、初步了解继承的内存布局
(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 方法
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)