| 复制代码package Day16;
class F
{
        int num=3;
        void print()
        {
                System.out.println("F num="+this.num);
        }
        public static void show()
        {
                System.out.println("F static show()");
        }
}
class Z extends F
{
        int num=4;
        void print()
        {
                System.out.println("Z num="+this.num);
        }
        public static void show()
        {
                System.out.println("Z static show()");
        }
}
class Test2
{
        /*子父类继承多态的三种情况
                1:子父类中同名变量,当多态创建子类对象调用方法时,调用的是谁的变量
                2:成员函数
                3:静态函数*/        
        public static void main(String[] args)
        {
                F f=new Z();
                f.print();  //1:当子父类有同名变量时,编译运行都看左边      
                                        //打印结果:F num=3;前提:子类print()没有复写父类print();
                f.print();  //2:当子父类有同名函数时,子类复写了父类的print()方法;编译看左边,运行看右边  
                                        //打印结果:Z num=4
                f.show();   //3:当子父类有静态同名函数时,调用show()方法  编译运行都看左边
                                        //打印结果:F static show()
        }
}
 |