搜题
问题   更新时间2023/4/3 12:59:00

class Ex0707Super
{
public Ex0707Super(String name)
{
System.out.println("superclass constructor"+name);
}
}
class Ex0707Sub extends Ex0707Super
{
public Ex0707Sub(String name)
{
System.out.println("subclass constructor"+name);
}
public Ex0707Sub()
{
System.out.println("subclass constructor no name");
super("no name");
}
}
public class Ex0707Demo
{
Ex0707Super superObj=new Ex0707Super("zhangsan");
Ex0707Sub subObj = new Ex0707Sub("lisi");
Ex0707Super superRef=subObj;
Ex0707Sub subRef=superObj;
}
上述程序存在3个错误,请指出来,并写出修改方案。

您的答案: 1. Ex0707Sub的带String类型参数的构造函数缺少对父类构造函数的调用。 2. Ex0707Sub的不带参数的构造函数中的super()语句必须为构造函数的第一句。 3. Ex0707Sub subRef=superObj;错误,因为superObj的为subRef的父类产生的对象,这样赋值导致转型错误。应删除。
王老师:19139051760(拨打)