继承中成员变量的访问特点

1 public class Fu {
2     int numFu=10;
3 
4     int num=100;
5 
6     public void methodFu(){
7         System.out.println(num);
8     }
9 }
 1 public class Zi extends Fu {
 2 
 3     int numZi = 20;
 4 
 5     int num = 200;
 6 
 7     public void methodZi() {
 8         // 因为本类当中有num,所以这里用的是本类的num
 9         System.out.println(num);
10     }
11 
12 }
 1 /*
 2 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
 3 
 4 直接通过子类对象访问成员变量:
 5     等号左边是谁,就优先用谁,没有则向上找。
 6 间接通过成员方法访问成员变量:
 7     该方法属于谁,就优先用谁,没有则向上找。
 8  */
 9 public class Demo01ExtendsField {
10 
11     public static void main(String[] args) {
12         Fu fu = new Fu(); // 创建父类对象
13         System.out.println(fu.numFu); // 只能使用父类的东西,没有任何子类内容
14         System.out.println("===========");
15 
16         Zi zi = new Zi();
17 
18         System.out.println(zi.numFu); // 10
19         System.out.println(zi.numZi); // 20
20         System.out.println("===========");
21 
22         // 等号左边是谁,就优先用谁
23         System.out.println(zi.num); // 优先子类,200
24 //        System.out.println(zi.abc); // 到处都没有,编译报错!
25         System.out.println("===========");
26 
27         // 这个方法是子类的,优先用子类的,没有再向上找
28         zi.methodZi(); // 200
29         // 这个方法是在父类当中定义的,
30         zi.methodFu(); // 100
31     }
32 
33 }

 

posted @ 2020-10-28 20:59  Oooooooa  阅读(177)  评论(0)    收藏  举报