zoukankan      html  css  js  c++  java
  • Java 子类父类构造方法执行顺序

     1 public class Test {
     2     class Super {
     3         int flag = 1;
     4 
     5         Super() {
     6             test();
     7         }
     8 
     9         void test() {
    10             System.out.println("Super.test() flag=" + flag);
    11         }
    12     }
    13 
    14     class Sub extends Super {
    15         Sub(int i) {
    16             flag = i;
    17             System.out.println("Sub.Sub()flag=" + flag);
    18         }
    19 
    20         void test() {
    21             System.out.println("Sub.test()flag=" + flag);
    22         }
    23     }
    24 
    25     public static void main(String[] args) {
    26         new Test().new Sub(5);
    27     }
    28 }
    先将父类的flag变量进行初始化,初始化为1,然后调用父类的构造方法,然后父类的构造方法中有test()方法,注意这里调用的子类的test()方法,此时flag = 1;
    父类的构造方法调用完毕,然后调用子类的构造方法,此时flag变量已经变成了5,所以打印结果为:
    Sub.test()flag=1
    Sub.Sub()flag=5


  • 相关阅读:
    oracle 锁查询
    ORACLE 本session产生的redo
    UML
    面向对象
    设计思维
    程序员习惯
    程序员修炼之道
    架构指南
    微服务架构
    测试用例
  • 原文地址:https://www.cnblogs.com/motong/p/10054615.html
Copyright © 2011-2022 走看看