基本クラスBase
とその派生クラスDerived
は、参照がインスタンスを参照できるtype compatible
という事実を指します。
つまり
、タイプがタイプ互換性がないため、反対の場合はキャストが必要になります。
この概念はプリミティブ型には適用できませんか?
私はこれを意味します Base
Derived
Base b = new Derived();
short shortNumber = 10;
int intNumber = shortNumber;
私には同じことのように思えます(また、キャストは必要なく、両方ともshort
とint
が整数型であるため)。
基本クラスでメソッドをオーバーライドする場合、戻り値の型が基本クラスの戻り値の型と同じか、少なくとも型互換性があることが許容されるのはなぜですか?たとえば、これは整数型には適用されません。
たとえば、なぜこれが受け入れられないのですか?
public class Person {
public int getId(){
return 1;
}
}
public class Employee extends Person {
public short getId(){
return 0;
}
}