Java:在跳过中间继承的父类(super class)时调用基父类(super class)方法

标签 java inheritance methods

<分区>

假设我有三个类:

class A
{
    public void method()
    { /* Code specific to A */ }
}

class B extends A
{
    @Override
    public void method()
    { 
       /*Code specific to B*/
       super.method(); 
    }
}

class C extends B
{
    @Override
    public void method()
    { /* I want to use the code specific to A without using B */ }
}

本例中的目标是使用 A 中的代码而不使用 B 中的代码。我认为可以通过调用 super 方法来实现,但这也引入了 B 中的代码。

有办法吗?

最佳答案

简短的回答是否定的。您所看到的是您的设计存在缺陷。它表明您也需要将 A 类中的代码移出到辅助类中。然后 B 和 C 将通过组合使用它。您可以尝试使用 partials 来获得您想要的行为。有关详细信息,请参阅此链接。 Partial function application in Java 8

关于Java:在跳过中间继承的父类(super class)时调用基父类(super class)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26979293/

相关文章:

java - 在 Java 中启动和处理数千个线程的最佳方式是什么?

javascript - 检查日期是否存在(第 30 天/第 31 天)

java - 附加两个十进制数字字符串并解析为 double

java - 需要用Java写一个RESTful JSON服务

iphone - Objective C 中的继承问题

objective-c - 使用协议(protocol)与继承的优点和缺点是什么?

python - 在 python 中重写 tuple.__len__

Java运行时异常

algorithm - 多个排名列表的总排名

algorithm - 查找日期是否在另一个日期之间的两个周末范围内