首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一步搞清楚多态与类初始化的底层原理(1)

一步搞清楚多态与类初始化的底层原理(1)

首先我们先看一个段非常有代表性的代码,里面一口气牵扯到了多态和类初始化顺序知识。

    public class Test {
     
        public static void main(String[] args) {
            A test = new B();
        }
    }
     
    class A {
        int value = 10;
     
        A() {
            System.out.println("父类构造器");
            process();
        }
     
        public void process() {
            System.out.println("父类的process");
            value++;
            System.out.println(value);
        }
    }
     
    class B extends A {
        int value = 12;
        {
            value++;
        }
        B() {
            System.out.println("子类构造器");
            process();
        }
     
        public void process() {
            System.out.println("子类的process");
            System.out.println(value);
            value++;
            System.out.println(value);
        }
    }

它的输出是:

父类构造器

子类的process

0

1

子类构造器

子类的process

13

14

    我想现在你一定很困惑,不要慌上车!带你了解底层的原理
返回列表