继承-已经override的子类访问父类对象
有3中情况:super、parent name(static)、parent type(强制转换)!
一、super
TestParent.java
1 public class TestParent 2 { 3 public int a = 6; 4 public String b = "hello parent"; 5 }
TestSon.java
1 public class TestSon extends TestParent 2 { 3 public int a = 10; 4 public String b = "hello son"; 5 public void access() 6 { 7 this.a = super.a; 8 this.b = super.b; 9 } 10 11 public static void main (String[] args) 12 { 13 TestSon stefen = new TestSon(); 14 stefen.access(); 15 System.out.println(stefen.a+" "+stefen.b); 16 } 17 }
二、parent name(static)
TestParent.java
1 public class TestParent 2 { 3 public static int a = 6; 4 public static String b = "hello parent"; 5 6 }
TestSon.java
1 public class TestSon extends TestParent 2 { 3 public int a = 10; 4 public String b = "hello son"; 5 public void access() 6 { 7 this.a = TestParent.a; 8 this.b = TestParent.b; 9 } 10 11 public static void main (String[] args) 12 { 13 TestSon stefen = new TestSon(); 14 stefen.access(); 15 System.out.println(stefen.a+" "+stefen.b); 16 } 17 }
三、parent type(强制转换)
这个时候:TestParent.java和TestSon.java 合入一个.java文件,否则识别不了TestParent!
1 class TestParent 2 { 3 public int a = 6; 4 public String b = "hello parent"; 5 6 } 7 8 public class TestSon extends TestParent 9 { 10 public int a = 10; 11 public String b = "hello son"; 12 13 14 public static void main (String[] args) 15 { 16 TestSon stefen = new TestSon(); 17 System.out.println(((TestParent)stefen).a+" "+((TestParent)stefen).b); 18 } 19 }
注意:第一次 ((TestParent)stefen).a 外围括号省略报错!

浙公网安备 33010602011771号