1 class Foo { 2 public int a; 3 4 public Foo() { 5 a = 3; 6 } 7 8 public int addFive() { 9 a += 5; 10 return a; 11 } 12 13 public int getA() { 14 return a; 15 } 16 } 17 18 public class Bar extends Foo { 19 public int a; 20 21 public Bar() { 22 a = 8; 23 } 24 25 public int addFive() { 26 this.a += 5; 27 return a; 28 } 29 30 public int getA() { 31 return a; 32 } 33 34 public static void main(String[] args) { 35 Foo foo = new Bar(); 36 //调用的是子类中的方法 37 System.out.println(foo.getA()); 38 //直接调用父类中的a 39 System.out.println("Value: " + foo.a); 40 //调用的是子类中的方法 41 System.out.println(foo.addFive()); 42 43 } 44 }
输出结果:
8
Value: 3
13
楼主,只需要明白一点就行了:在Java中重写指的是方法的重写,而不是属性的重写,还有多态也只是方法的多态 ,没有属性的多态。
时间: 2024-11-05 20:40:22