一个类是否有可能有一个只能由它的对象调用并且对子类对象隐藏的方法?例如:
class ClassOne {
... // attributes
public void doSomething() { ... }
}
class ClassTwo extends ClassOne {
... // attributes and methods
}
ClassOne c1 = new ClassOne();
c1.doSomething(); // ok to call
ClassTwo c2 = new ClassTwo();
c2.doSomething(); // forbidden
我知道这在继承方面似乎很奇怪,但是有可能吗?
PS:本题的目的只是为了了解更多有关 OO 编程的继承的知识。
最佳答案
这会破坏继承,这是不可能的,也是你的权利。想想
ClassOne c2 = new ClassTwo();
c2.doSomething(); // what to do?
这必须有效,因为 ClassTwo is a一类。编辑:至少必须编译,如果该方法被重写并执行其他操作取决于您的设计。但你不能让编译器产生错误。
关于java - 保护父类(super class)方法免受子类方法的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204217/