多态中成员变量的使用特点
多态中成员变量的使用特点
访问成员变量的两种方式:
1.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁 没有则向上找
代码
父类:
public class Fu { int num=10; }
子类:
public class Zi extends Fu { int num=10; }
测试类:
public static void main(String[] args) { Fu f= new Zi(); System.out.println(f.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 Zi zi=(Zi) f; System.out.println(zi.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 }
成员变量:编译看子类,运行看父类
2.间接通过成员方法访问成员变量:看该方法属于谁 优先用谁 没有则向上找
父类:
public class Fu { int num=10; public void num(){ System.out.println(num); } }
子类:
public class Zi extends Fu { int num=20; @Override public void num() { System.out.println(num); } }
测试类:
public class test { public static void main(String[] args) { Fu f= new Zi(); System.out.println(f.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 Zi zi=(Zi) f; System.out.println(zi.num);//当父类和子类的成员变量的一样的就会访问等号左边的类 System.out.println("----------------------"); Fu z=new Zi(); z.num(); } }
成员方法:编译看父类 运行看子类;
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号