假设我有 3 个课程:
class Foo
{
protected String var;
public void doSomething()
{
// does something with var
}
}
class A extends Foo
{
public void doSomething()
{
// uses var slightly differently to Foo
}
}
class B extends Foo
{
protected int var; // hides Foo's var field
public void doSomething()
{
// does something with B's var, but still in a similar fashion to Foo
}
}
在这种情况下,我知道并希望 B 的 var 字段隐藏 Foo 并且仍然以类似的方式使用(打印它的值或执行一些计算或其他)。
故意隐藏字段会使代码难以阅读,但这是一个例外,还是只是糟糕的设计?
编辑:
我确实希望 A 从 Foo 继承“var”,但我也希望 B 继承除 var 之外的所有内容。
编辑 2:
忘记将访问修饰符添加到 var。