大家一定对一道面试题很熟悉:
Consider the class hierarchy shown below:
FourWheeler
(implements DrivingUtilities)
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
Car Truck Bus Crane
Consider the following code below:
1.DrivingUtilities du;
2.FourWheeler fw;
3.Truck myTruck = new Truck();
4.du = (DrivingUtilities)myTruck;
5.fw = new Crane();
6.fw = du;
接着问了几个问题,我不是问答案,
而是我把相应的类都创建了,然后造了个Test类,
把这段代码写进去,结果报了个语法错误,在第3行,删掉第3行就报第2行劳烦大家看看
Consider the class hierarchy shown below:
FourWheeler
(implements DrivingUtilities)
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
Car Truck Bus Crane
Consider the following code below:
1.DrivingUtilities du;
2.FourWheeler fw;
3.Truck myTruck = new Truck();
4.du = (DrivingUtilities)myTruck;
5.fw = new Crane();
6.fw = du;
接着问了几个问题,我不是问答案,
而是我把相应的类都创建了,然后造了个Test类,
把这段代码写进去,结果报了个语法错误,在第3行,删掉第3行就报第2行劳烦大家看看
public inteface DrivingUtilities{}
public Abstarct class FourWheeler implements DrivingUtilities{}
public class Truck extends FourWheeler{
Truck(){
}
}
public class Crane extends FourWheeler{
Crane(){
}
}public class Test{
DrivingUtilities du;
FourWheeler fw;
Truck myTruck = new Truck();
du = (DrivingUtilities)myTruck;
fw = new Crane();
fw = du;
}我觉得非常简单,,但是真的不知道哪里出了问题
个人意见
我刚才又在一台机器上实验了一下,还是第3行的错误,
当然可能不是第3行的错误,是编译器不够智能,
我非常的郁闷,,刚才还把jdk从5.0换到1.4,
还是一样.感谢几位费心!
public Abstarct class FourWheeler implements DrivingUtilities{}
public class Truck extends FourWheeler{}
public class Crane extends FourWheeler{}public class Test{
DrivingUtilities du;
FourWheeler fw;
Truck myTruck = new Truck();
du = (DrivingUtilities)myTruck;
fw = new Crane();
fw = du;
}
几位是把这段程序粘贴的自己机器(inteface已经修改为interface)上试的吗?
没做任何改动?(当然是每个类一个文件)
这样就可以了~DrivingUtilities du;这是一个接口~
fw = du;的时候需要具体化~
因此,强转一下就可以了~
fw = (FourWheeler)du;
public Abstarct class FourWheeler implements DrivingUtilities{}
public class Truck extends FourWheeler{}
public class Crane extends FourWheeler{}public class Test{
DrivingUtilities du;
FourWheeler fw;
Truck myTruck = new Truck();
du = (DrivingUtilities)myTruck;
fw = new Crane();
fw = du;
}
几位是把这段程序粘贴的自己机器(inteface已经修改为interface)上试的吗?
没做任何改动?(当然是每个类一个文件)
bao110908(好没劲~~) 辛苦了,我的问题在于最后test中,不能直接写方法,得在构造函数中写,或main()中写.
daniel_kaka(卡卡) 说的也没错,是对这道题的解决.