面试题-程序题-多态的理解
【只是在看到小伙伴在讨论问题的时候,自己当时也听懵的,所以先记下这个结论,后期有空再来补充详细内容】
结论:多态只是针对方法的,而不针对变量。
可以这样记:调用属性时编译和运行都看左边;调用方法时编译时看左边运行时看右边
/**
* 多态的理解
*/
public class Test {
public static void main(String[] args) {
Parent p = new Children();
System.out.print(p.i);
p.print();
Children c = (Children)p;
System.out.print(" " + c.i);
c.print();
}
}
class Parent{
int i = 20;
int j = 30;
void print(){
System.out.print(" " + i);
}
}
class Children extends Parent{
int i = 30;
int j = 40;
void print() {
System.out.print(" " + i);;
}
}
/**
* 运行结果:20 30 30 30
*/