Java 当子类和超类都实现同一个接口时会发生什么
当这两个类都实现抽象方法Java 当子类和超类都实现同一个接口时会发生什么,java,oop,Java,Oop,当这两个类都实现抽象方法getVehicle()时,这里实际发生了什么?子类是否覆盖了超级类getvehicle(),或者接口getvehicle()?子类的实现将覆盖超级类的实现。说子类将重写接口的方法没有任何意义,因为接口不提供实现(除非您谈论的是Java8默认接口方法) 顺便说一句,声明超级类实现接口就足够了。子类将隐式地实现它,而不声明它实现了它 所以即使你写: interface Vehicle { public abstract void getVehicle();
getVehicle()
时,这里实际发生了什么?子类是否覆盖了超级类getvehicle()
,或者接口getvehicle()
?子类的实现将覆盖超级类的实现。说子类将重写接口的方法没有任何意义,因为接口不提供实现(除非您谈论的是Java8默认接口方法)
顺便说一句,声明超级类实现接口就足够了。子类将隐式地实现它,而不声明它实现了它
所以即使你写:
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");
}
}
及
MyWorld
仍然执行车辆
- 接口定义了“应该有哪些方法”
- 父类定义该方法
- 子类定义并重写父类中定义的方法
public class HelloWorld implements Vehicle
class MyWorld extends HelloWorld