シナリオは次のとおりです。-
class Canine{
public void roam(){
System.out.println("Canine-Roam");
}
}
public interface Pet{
public abstract void roam();
}
class Dog extends Canine implements Pet{
public void roam(){
System.out.println("Dog Roam");
}
public static void main(String [] args){
Dog adog = new Dog();
adog.roam();
}
}
JVMは、実行するメソッドを選択する際に混乱してはならないことを認識しています。つまり、どのメソッドがオーバーライドされるかを意味します。しかし、とにかく私は混乱しています。なぜこのプログラムはコンパイルされるのですか?