重写和隐藏的本质,通过demo测试说明

重写和隐藏的本质区别是:重写是动态绑定的,根据运行时引用所指向对象的实际类型来决定调用相关类的成员。而隐藏是静态绑定的,根据编译时引用的静态类型来决定调用的相关成员。换句话说,如果子类重写了父类的方法,当父类的引用指向子类对象时,通过父类的引用调用的是子类方法。如果子类隐藏了父类的方法(成员变量),通过父类的引用调用的仍是父类的方法(成员变量)。

首先,创建一个Animal作为父类


再创建一个Dog类继承Animal,且重写父类的move方法


测试1 不屏蔽子类Dog的move方法


测试2 屏蔽子类Dog的move方法


猜你喜欢

转载自blog.csdn.net/qq_39467629/article/details/80439237