Ark*_*aha 24 java overriding super
假设我有3个类A,B并且C每个类都扩展了前一个类.
如何调用代码A.myMethod()从C.myMethod()如果B也实现myMethod?
class A
{
public void myMethod()
{
// some stuff for A
}
}
class B extends A
{
public void myMethod()
{
// some stuff for B
//and than calling A stuff
super.myMethod();
}
}
class C extends B
{
public void myMethod()
{
// some stuff for C
// i don't need stuff from b, but i need call stuff from A
// something like: super.super.myMethod(); ?? how to call A.myMethod(); ??
}
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*ine 18
你不能.这是故意的.
类B为子类提供接口(如概念中,而不是Java关键字).它选择不直接访问功能A.myMethod.如果您需要B提供该功能,请使用不同的方法(不同的名称,制作它protected).然而,"更喜欢构图而不是继承"可能更好.