当前位置 : 主页 > 编程语言 > java >

Java图文分析之继承内存布局

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 一、初步了解继承的内存布局 (1) 继承内存布局初探 (2) Object 类 (3) 同名的成员变量 二、更复杂的继承的内存布局 一、初步了解继承的内存布局 (1) 继承内存布局初探 看下面拥有继
目录
  • 一、初步了解继承的内存布局
    • (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 方法

    网友评论