1-Java继承中多态情况特性下变量,方法,静态方法的访问

在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();
    }
}
原文地址:https://www.cnblogs.com/superstudy/p/5110185.html