相关疑难解决方法(0)

在Java中显式调用默认方法

Java 8引入了默认方法,以提供扩展接口的能力,而无需修改现有实现.

我想知道,当该方法被覆盖或由于不同接口中的冲突默认实现不可用时,是否可以显式调用方法的默认实现.

interface A {
    default void foo() {
        System.out.println("A.foo");
    }
}

class B implements A {
    @Override
    public void foo() {
        System.out.println("B.foo");
    }
    public void afoo() {
        // how to invoke A.foo() here?
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑到上面的代码,你会如何A.foo()从B类方法调用?

java inheritance interface java-8 default-method

217
推荐指数
4
解决办法
5万
查看次数

抽象类中的具体方法

我理解抽象类可能包含抽象和具体的方法(即使用body实现).我的问题是:子类可以从抽象超类继承/覆盖具体方法.其次,他们必须以与实现抽象方法相同的方式实现具体方法吗?

java inheritance abstract-class concrete-inheritance

8
推荐指数
2
解决办法
3万
查看次数