java小知识1(多态中调用成员方法和变量的区别)
多态中调用成员方法和变量的区别:
public class Test {
public static void main(String[] args) {
Animal a=new Dog();
//调用成员变量:编译看左边,运行看左边
//如果左边的类中没有,就会向上找,直到找到为止
//如果没有找到,就会报错
System.out.println(a.name);//动物
//调用成员方法:编译看左边,运行看右边
//如果左边的类中没有,就会向上找,直到找到为止
//如果没有找到,就会报错
//但是运行时调用的是右边的方法
a.show();//Dog—show
}
}
class Animal{
String name=”动物”;
public void show(){
System.out.println(“Animal—show”);
}
}
class Dog extends Animal{
String name=”狗”;
@Override
public void show(){
System.out.println(“Dog—show”);
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!