在Java继承下,多态特性下类成员访问情况
/* 在继承中,变量时静态的绑定的,非静态方法是动态的绑定的,静态方法是静态绑定的 */ class Parent{ int number = 11; public void show(){ System.out.println(number); } public static void test(){ System.out.println("Parent::test"); } } class Child extends Parent{ int number = 10; public void show(){ System.out.println(this.number); } public static void test(){ System.out.println("Child::test"); } } /* 通过父类的引用只能访问到父类所具有的的方法,子类的特殊的方法访问不到, 当子父类都具有某一方法时访问到的是子类的方法.因为父类的方法被覆盖了 通过父类的引用访问变量时,只能访问到父类中的成员变量,当是共有的成员变量时, 只能访问到父类的变量值的内容. 静态方法存放在特定的区域,类名.方法名(); */ public class ExtendsTest{ public static void main(String[] args){ Child p = new Child(); Parent p1 = p; System.out.println(p.number);//10 p.show();//10 System.out.println(p1.number);//11 p1.show();//10 p.test(); p1.test(); } }