00问答网
所有问题
Java子类Override的方法的访问权限为什么不能比父类窄?从实用角度讲,这是什么道理?
如题所述
举报该问题
推荐答案 2018-05-07
根据继承和多态规则,如果一个父类A具有public方法fun,那么它的任意子类对象上都应该可以调用方法fun。而如果子类重写方法的访问权限可以低于父类方法,那么可以将子类中的fun方法改写为private,就会出现子类对象无法调用fun方法的现象,这就违背了继承和多态基本原则。例如动物可以呼吸,那么任何属于动物的具体物种例如人都可以调用呼吸方法。如果将人类的呼吸方法改为private,那么人虽然身为动物却无法呼吸,这就违背了继承原则。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DIrBDDZreIIrI0DZBn0.html
其他回答
第1个回答 2018-05-07
你想想,父类用public 子类用 private
那外面 还能用父类去调用子类的方法么?
显然不能。一般调用都是 直接new个父类去调用的。如果子类重写了,就调用重写的。没有就用父类的。
第2个回答 2021-07-19
The subclass overridden method can not have a weaker access specifier.
For example, if the superclass method is protected, the subclass overridden method can have protected or public (but NOT default or private) .
相似回答
java
override
怎么用
答:
(2)
子类方法不能缩小父类方法的访问权限
(反过来是可以的)例:class A{ public int getVal(){ return(5); } } class B extends A{ public int getVal(){ return(10); } } public class override { public static void main(String[] args) { B b = new B(); A a= (A)b;//...
override
和overload的区别
答:
2、子类方法不能缩小父类方法的访问权限
。3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。4、存在于父类和子类之间。5、方法被定义为final不能被重写。overload(重载,过载)1、参数类型、个数、顺序至少有一个不相同。2、不能重载只有返回值不同的方法名。3、存在于父类和...
overload和
override
有
什么
区别
答:
(2)子类方法不能缩小父类方法的访问权限
。(3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。(4)存在于父类和子类之间。(5)方法被定义为final不能被重写。(6)被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。3、overload(重载,...
java中,子类override父类
中
的方法,
可以添加参数吗?还是只能复写方法体...
答:
不可以添加参数
,子类的
返回类型,参数数量,参数类型,参数位置必须和父类一致
大家正在搜
java父类怎么调用子类方法
java父类调用子类重写的方法
java子类不能继承父类什么
Java中子类调用父类方法
Java子类可以继承父类的什么
子类怎么调用父类的构造方法
java子类调用父类构造方法
Java中子类如何修改父类的属性
java子类调用子类
相关问题
在java 中子类对象为什么不能比父类对象有更严格的访问权限...
Java中子类的访问权限为何比父类大?
为什么子类重写父类的方法的访问修饰符,不能低于父类的方法访问...
为什么子类重写父类的方法的访问修饰符,不能低于父类的方法访问...
Java继承中override的问题
java里子类继承自父类,因此子类方法不能产生比父类更多的异...
跪求:java:子类中@override了父类的某个方法是不...
java子类覆盖(override)父类的方法, 异常如何处...