【发布时间】:2017-07-27 23:49:15
【问题描述】:
我正在处理一个庞大的代码库,该代码库有一个巨大的类,其中包含许多私有成员以及公共和私有方法。我想从这个基类创建一个派生类,它具有所有相同的成员和方法,除了它的一个公共方法将有一行注释。我该怎么做?
我曾想过重写该方法,但该方法访问了基类的许多私有成员。
下面是我想做的事情的骨架。
public class Base {
private var1;
private var2;
public toBeOverriden(){
processA(var1);
processB(var1);
processC(var1); // needs to be commented
processD(var2);
processE(var2);
}
}
理想情况下我想做 -
public class Derived extends Base{
@Override
public toBeOverriden(){
processA(var1);
processB(var1);
processD(var2);
processE(var2);
}
}
这是不可能的,因为我无法访问基类的私有变量。如果不保护所有私人成员,我能做些什么吗?请注意,将processC() 覆盖为空不是一种选择,因为它可以被其他非覆盖方法使用。
【问题讨论】:
-
也许这可以帮助你:stackoverflow.com/questions/215497/…
-
为什么不直接覆盖
processC()让它什么都不做? -
您可能需要更新代码 sn-p 以反映 Derived 扩展 Base 的事实
-
因为 processC() 也被 processD() 使用
-
所以创建另一个方法
processC2()调用processC()并覆盖它。
标签: java inheritance