java - 保护父类(super class)方法免受子类方法的影响

标签 java class inheritance methods

一个类是否有可能有一个只能由它的对象调用并且对子类对象隐藏的方法?例如:

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/

相关文章:

java - 如何在 IE 11 中使用 Selenium webdriver 单击安全警告窗口?

java - YAWS 面向 Tomcat

c++ - 这应该被称为对象切片的一些特殊情况吗?

c++ - 可选功能的设计模式?

java - 如何从 BroadcastReceiver 更新 RecyclerView?

java - 但是,不应过度使用创建静态实用程序方法吗?如何避免呢?

c# - 如何从类中调用变量

java - 添加新元素时应该使用克隆吗?什么时候应该使用克隆?

html - 如何在 `class` 和 `id` 之间进行选择

java - 关于java中的继承