当子类和父类定义了相同名字的代码段时:
1 package test_03;
2 class Parent{
3 public int myValue=100; //默认值 100
4 public void printValue() {
5 System.out.println("Parent.printValue(),myValue=" +myValue);
6 }
7 }
8 class Child extends Parent{
9 public int myValue=200; //子类默认值 200
10 public void printValue() {
11 System.out.println("Child.printValue(),myValue="+myValue);
12 }
13 }
14
15 public class ParentChildTest {
16
17 public static void main(String[] args) {
18 Parent parent=new Parent(); //实例化父类
19 parent.printValue(); //调用父类的方法
20 Child child=new Child(); //实例化子类
21 child.printValue(); //调用子类方法
22
23
24 parent=child; //子类赋值给父类
25 parent.printValue(); //调用父类的方法
26
27 parent.myValue++; //父类属性值+1
28 parent.printValue(); //再次调用父类方法
29
30 ((Child)parent).myValue++; //向下转型属性值+1
31 parent.printValue(); //调用父类方法
32 }
33 }