当我们说基类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;
}
}