你好我对方法实现很困惑所以请任何人帮助我? 以下是我的方案
我有一个抽象类
public abstract class VehicalAbstarct {
public abstract void speed();
}
我有一个界面
public interface Vehical {
public void speed();
}
我还有一个课程扩展 VehicalAbstarct 并实现 Vehical 界面
public class VehicalExample extends VehicalAbstarct implements Vehical {
public static void main(String[] args) {
// TODO Auto-generated method stub
VehicalExample v=new VehicalExample();
v.speed();
}
@Override
public void speed() {
// TODO Auto-generated method stub
System.out.println("Speed is calling from vehical example..");
}
}
***********OUTPUT************
Speed is calling from vehical example..
现在 speed()方法是 VehicalAbstarct 类的@Override或 Vehical 界面的@Override? p>
如果@Override由 VehicalAbstarct 上课,那怎么样? 和 @Override by Vehical 界面又如何?
答案 0 :(得分:0)
您覆盖VehicalAbstarct
中覆盖Vehical
界面中方法的方法。所以,在某种程度上你可以覆盖它们。
见这个例子:
interface A {
default void method() {
}
}
abstract class B {
abstract void method();
}
class C extends B implements A {
// compiler error, method() not implemented
}
尽管A
的默认实现为method()
,但它被B
覆盖了一个抽象的实现。因此,我们必须在C
中覆盖它。