我有一个名为 child 的子类,它继承了一个名为 parent 的类。我正在尝试覆盖超类中的方法。我做了一点实验。我创建了具有返回类型 short 的覆盖方法,它是 int 的子类型。据我所知,我可以这样做。并且该方法在法律上被覆盖。每当我使用超类的引用调用该方法时,编译器都会生成一个不兼容的返回类型错误。这里有什么问题?我的代码如下:
class parent
{
int test()
{
System.out.println("called inside parent\n");
return 1;
}
}
class child extends parent
{
short test()
{
System.out.println("called inside child\n");
return 1;
}
}
class Myclass
{
public static void main(String[] args)
{
parent a=new child();
a.test();
}
}