【发布时间】:2019-06-10 21:10:30
【问题描述】:
例如,Base 类有两个公共方法:foo() 和 bar()。派生类继承自类 Base(我无法修改此类,因为它在我使用的库中)。
在派生类(它在我的应用程序中)中,我想让 foo() 公开但 bar() 私有。以下代码是正确且自然的方法吗?我没有扩展它,而是创建一个对象并仅访问所需的方法。
class Base {
public void foo();
public void bar();
};
public class Derived {
private Base base;
public void bar() {
base.bar();
}
};
【问题讨论】:
-
您显示的代码中没有继承。你是什么意思,你想让一个继承的方法“私有”?这是不可能的
-
在派生类中将继承的公共方法设为私有是没有意义的。派生类必须能够替代基类。如果由于可见性限制,基类中的方法不再可用,这将不起作用。
-
这是组合(例如非常简单的外观或适配器),而不是继承。
标签: java