当子类和超类都实现相同的接口时发生了什么

Cha*_*nky 3 java oop

interface Vehicle
{   
    public abstract void getVehicle();      
}

public class HelloWorld  implements Vehicle{
@Override
public void getVehicle() 
 {
    System.out.println("HelloWorld Implementation");        
 }
}

class MyWorld extends HelloWorld implements Vehicle
{       
@Override
public void getVehicle() 
 {
    System.out.println("MyWorld Implementation");       
 }   
}
Run Code Online (Sandbox Code Playgroud)

当两个类都在实现抽象方法时getVehicle(),这里实际发生了什么?子类是否重写超类getvehicle()或Inteface getVehicle()

Era*_*ran 6

子类的实现将覆盖超类的实现.说子类会覆盖接口的方法是没有意义的,因为接口不提供实现(除非你在谈论Java 8默认接口方法).

顺便说一句,它足以声明超类实现接口.子类将隐式实现它,而不声明它实现它.

即使你写道:

public class HelloWorld implements Vehicle
Run Code Online (Sandbox Code Playgroud)

class MyWorld extends HelloWorld
Run Code Online (Sandbox Code Playgroud)

MyWorld仍然实施Vehicle.