2015-06-05 173 views
0

你好,我對這個方法的實現感到困惑,所以請任何人幫我一下? 以下是我的情況Java抽象類,接口,方法覆蓋

我有一個抽象類

public abstract class VehicalAbstarct { 

    public abstract void speed(); 
} 

我有一個接口

public interface Vehical { 

    public void speed(); 
} 

我還有一個延伸VehicalAbstarct和implemnts 級車業接口

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.. 

現在速度()方法由VehicalAbstarct類或@Override @Override通過車業接口?

如果@Override通過VehicalAbstarct類然後如何? 和 @Override通過Vehical接口然後如何?

+0

是,相同的方法。 –

+2

好的,當有人將你鏈接到另一個問題時,你應該閱讀它並說出它是否回答你的問題。我認爲接受的答案解決了你所問的問題 - 你壓倒了兩者。就好像您實現了兩個獨立的方法名稱相同的接口。 – dcsohl

+0

其重寫兩個 – aa1992

回答

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 
} 

即使Amethod()一個默認的實現,它是由B覆蓋有一個抽象。因此我們必須在C中覆蓋它。

相關問題