私はEdibleインターフェイス、Locationクラス、およびEdibleを実装するStrawberryクラスを持っています。私は問題なくコンパイルして実行できます。私は、インターフェイスを実装するクラスは、すべてのインターフェイスメソッドを含む必要があると考えました。 私の質問は、StrawberryがEdibleを実装しているのにgetLocationメソッドを含んでいないという理由で、このコードでエラーが発生しないのはなぜですか? getLocationの戻り値の型をプリミティブに変更すると、私が探しているエラーが発生します。カスタムタイプを返すと違いが出ますか?もしそうなら、なぜですか?Javaインターフェイス - カスタムリターンタイプ?
public interface Edible {
Location getLocation();
}
public class Location {
private String name;
public Location(String n){
name = n;
}
}
public class Strawberry implements Edible{
int cals;
Location location;
public Strawberry(int c, Location l){
cals = c;
location = l;
}
}
このコードが実際にコンパイルエラーを生成する:
EDIT2:以下のような食用インタフェースで定義されたのgetLocation()メソッドを実装参照、実施例については、あろう。 **正確な**コードをここに貼り付けてもよろしいですか? – Mureinik