JAVA:为什么重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变
java面向对象有个重要的特性就是多态:
Map m = new HashMap();
此时如果HashMap里面的覆写方法权限为private,而Map接口方法权限为public,
此时通过实例m调用方法还能调用吗?(java方法是后端绑定,即运行时判断是调用对应实现的实例方法,多态)
我们假设,如果人会说话的话,那么中国人美国人印度人都会说话。
但是北京人、上海人、广州人都会说汉语,我们不一定要所有的人都会说汉语。
修饰权限从小的范围到大意味着,如果基类拥有一个什么方法,那么在同等条件下,派生类也有这个方法,并且必然可以调用这个方法。这就是说如果某个抽象的概念(比如人)有一个特性或者功能(说话),那么必然具体的它的概念(比如中国人美国人印度人)也有这个功能。