02 多态的成员特点

成员变量的特点 (编译看左,运行看左)

  1. 编译看左边: 看左边类/接口有没有这个变量, 如果有就编译成功,没有则失败
    运行看左边: 运行左边类/接口中的变量值
public class Fu {
    int a = 10;
}

public class Zi extends Fu{
    int a = 20;
}

public class Test {

    public static void main(String[] args) {
        Fu fu = new Zi();
        System.out.println(fu.a); //10
    }
}

成员方法的特点

  1. 编译看左边(父),如果有此方法,编译成功,没有则失败
  2. 运行看右边(子), 调用子类的成员方法
public class Fu {
    public void function() {
        System.out.println("我是爸爸");
    }//如果去掉父类function方法,编译失败
}

public class Zi extends Fu{
    public void function() {
        System.out.println("我是儿子");
    }//如果去掉子类function方法,则转向吊用父类的function方法
}

public class Test {

    public static void main(String[] args) {
        Fu fu = new Zi();
        fu.function();//我是儿子
    }
}

你可能感兴趣的:(02 多态的成员特点)