标签:xtend 顺序 oid 原因 sub bsp 变量 运行 []
首先看一个代码
父类代码:
1 public class Parent { 2 3 { 4 System.out.println("Parent非静态代码块"); 5 } 6 7 static { 8 System.out.println("Parent静态代码块"); 9 } 10 11 public String name; 12 13 14 public Parent() { 15 this.name = "小明"; 16 // play1(); 17 play(); 18 } 19 20 // public void play1() { 21 // System.out.println(name +"在Parent类中玩游戏!!!"); 22 // } 23 24 public void play() { 25 System.out.println(name +"在Parent类中玩游戏!!!"); 26 } 27 }
子类代码:
1 public class Sub extends Parent{ 2 3 { 4 System.out.println("Sub非静态代码块"); 5 } 6 7 static { 8 System.out.println("Sub静态代码块"); 9 } 10 11 public String name; 12 13 public Sub(String name) { 14 super(); 15 this.name = name; 16 } 17 18 public void play() { 19 System.out.println(name +"在Sub类中玩游戏!!!"); 20 } 21 }
main方法代码:
1 public class Main { 2 3 public static void main(String[] args) { 4 5 // System.out.println("========主方法========"); 6 7 Sub sub = new Sub("小强"); 8 9 sub.play(); 10 11 12 } 13
运行的结果是:Parent静态代码块
Sub静态代码块
Parent非静态代码块
null在Sub类中玩游戏!!!
Sub非静态代码块
小强在Sub类中玩游戏!!!
其中有几个点需要注意:
(1)输出null的原因是当时name还没有进行初始化(sub.name)
(2)而play()运行出来sub的原因是没有parent对象
标签:xtend 顺序 oid 原因 sub bsp 变量 运行 []
原文地址:https://www.cnblogs.com/ne709/p/9475958.html