一个类是否有可能只能由其对象调用并为子类对象隐藏的方法?例如:
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 ClassOne。编辑:如果该方法被覆盖并且至少要进行其他操作,则至少必须编译。但是您不能使编译器对此产生错误。