重写的方法我有一个类A
:使用从子类
private static class A
{
public void foo()
{
Sub sub = new Sub();
sub.bar();
}
protected class Sub
{
protected void bar()
{
System.out.println("bar from A");
}
}
}
而且我希望把它扩大到稍微修改bar()
在它的子类Sub
。
private static class B extends A
{
protected class Sub extends A.Sub
{
@Override
protected void bar()
{
System.out.println("bar from B");
}
}
}
如果我现在尝试
B b = new B();
b.foo();
我从一个栏调用它,但我需要的B吧。
我也可以解决覆盖foo()
的问题。但是foo()
是一个巨大的方法,如果我只是复制它,我会得到冗余代码。我不能把它分成多个小的。
有没有办法调用新的bar()
而不是覆盖foo()
?