我们经常在多态中遇到下面的类似情况,相同的成员变量名,父类引用指向子类对象,然后根据引用打印属性,一脸懵逼。。。看看代码回顾下
public class Animal {
public int num = 1;
public void run(){
System.out.println("run..Animal...");
}
}
public class Cat extends Animal{
public int num = 2;
@Override
public void run() {
System.out.println("Cat ...run..");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Cat();
System.out.println(animal.num);
}
}
输出
我也搞不懂,反正就记下来吧,哎~~~
口诀:成员变量,静态方法看左边;非静态方法:编译看左边,运行看右边