2015-06-05 53 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中覆盖它。