java问题:下面是Example.java文件的完整代码,请找出会产生编译错误的行()。

class SubClass extends BaseClass{
}
class BaseClass(){
String str;
public BaseClass(){
System.out.println(“ok”);}
public BaseClass(String s){
str=s;}}
public class Example{
public void method(){
SubClass s=new SubClass(“hello”);
BaseClass b=new BaseClass(“world”);
}
}

Which line would be cause the error?
A.9
B.10
C.11
D.12

答案是C;但不知道为什么!!求解答,谢谢~~

子类没有写构造方法,只有默认的无参构造方法,带参数的创建子类实例,肯定会出错!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-11
SubClass里面都没有定义有参构造函数,你new SubClass(“hello”)当然会错。追问

子类不是继承父类的构造方法吗?这样不是可以带参数的创建实例吗??

第2个回答  2012-10-11
子类SubClass只有默认无参构造函数,很明显的错误。
第3个回答  2012-10-11
没有构造方法啊 public SubClass(String str){this.str = str;}这个可以啊。。。追问

子类不是继承父类的构造方法吗?这样不是可以带参数的创建实例吗??

追答

如果要调用父类的构造方法,在子类构造函数中用super关键字调用父类的构造函数。super("hello");还得放在第一句。

相似回答