SCJP中的一道小题不懂.
class Super{
public int i=0;
public Super(String text){
i=1;
}
}
public class Sub extends Super{
public Sub(String text){
i=2;
}
public static void main(String args[]){
Sub sub=new Sub( "Hello ");
System.out.println(sub.i);
}
}
what is the result?
A. compile will fail
B. compile success and print "0 "
C. compile success and print "1 "
D. compile success and print "2 "
选什么啊.谢谢.最好能解释下.
[解决办法]
干吗不运行一下
[解决办法]
父类没有默认构造方法,子类要显示调用
[解决办法]
如果想考SCJP建议你看JAVA2学习指南.我就是看的那个.
[解决办法]
在调用子类的构造函数时先调用父类的默认构造函数,
[解决办法]
假设A是B的父类,B是A的子类。
1、如果程序员没有给类A没有提供构造函数,则编译器会自动提供一个默认的无参数的构造函数,如果用户提供了自己的构造函数,则编译器就不在提供默认的无参数构造函数。
2、子类B实例化时会自动调用父类A的默认构造函数,所以如果A的默认的无参数的构造函数为private,则编译器会报错,而如果A没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到A的默认无参数构造函数。所以,我们最好给父类A提供一个无参数的构造函数。
3、或者在B的构造函数中显示的调用父类A的有参构造函数。super(parameter)
[解决办法]
学习了,up
[解决办法]
在子类的构造方法中第一句应该是super(text);先显示的指定要调用的父类的构造方法。
结贴是个好习惯,谢谢。
[解决办法]
来晚了 帮顶一下!!!
[解决办法]
去了解下构造一个类时方法的调用顺序就明白了
[解决办法]
楼主想考SCJP,最基本的问题一定要懂啊
如果父类只有带参数的构造函数
那么子类的构造函数的第一行必须明确调用
[解决办法]
学习了
[解决办法]
编译错误。因为父类重写了一个构造方法,把原来的无参数的构造方法给覆盖了,
子类继承父类的构造方法默认是继承无参数的,现在父类没有,子类在实例话的时候,要先调用父类的构造方法 ,现在父类无参数的方法没有 所以 编译错误
[解决办法]
学习了
[解决办法]
scjp对找工作起不到什么作用,很多公司招人不会看这些的。scjp只考java基础,而只懂点java基础是找不到工作的
[解决办法]
zdjray(PubSoft) 说的很深刻..~
[解决办法]
那如果一类C既继承自类A又继承自类B,那么在实例化子类C的时候该怎么做呢?