2015-07-07 2 views
0
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");  
} 
} 

Когда оба класса реализуют абстрактный метод getVehicle(), что на самом деле происходит здесь? Является ли переопределяющим класс суперкласса getvehicle() или Inteface getVehicle()?Что произошло, когда подкласс и суперкласс выполняли один и тот же интерфейс

ответ

4

Внедрение подкласса переопределяет реализацию суперкласса. Не имеет смысла говорить, что подкласс будет переопределять метод интерфейса, поскольку интерфейс не предоставляет реализацию (если вы не говорите о методах интерфейса Java 8 по умолчанию).

BTW, достаточно объявить, что суперкласс реализует интерфейс. Подкласс выполнил бы это неявно, не объявив, что он его реализует.

Так что даже если вы пишете:

public class HelloWorld implements Vehicle 

и

class MyWorld extends HelloWorld 

MyWorld еще реализует Vehicle.

0
  • Интерфейс определяет «Что методы должны быть там»
  • Родительский класс определяет метод
  • разграничивает классы
  • ребенка и переопределяет метод, определенный в родительском классе

Таким образом, он будет вести себя так же, как и любое другое наследование

(даже если метод defi ned in interface [Java 8])

Смежные вопросы