作业帮 > 综合 > 作业

在下列代码的第9 行插入哪条语句可使程序编译通过?( ) 1.class X { void do1() { } } 2.

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/27 14:14:21
在下列代码的第9 行插入哪条语句可使程序编译通过?( ) 1.class X { void do1() { } } 2.class Y
在下列代码的第9 行插入哪条语句可使程序编译通过?( )
1.class X { void do1() { } }
2.class Y extends X { void do2() { } }
3.
4.class Chrome {
5.\x05\x05public static void main(String [] args) {
6.\x05\x05\x05X x1 = new X();
7.\x05\x05\x05X x2 = new Y();
8.\x05\x05\x05Y y1 = new Y();
9.\x05\x05\x05// 插入代码
10.\x05\x05}
11.}
A) x2.do2();
B) (Y)x2.do2();
C) ((Y)x2).do2();
D) 以上A、B、C 均可.
在下列代码的第9 行插入哪条语句可使程序编译通过?( ) 1.class X { void do1() { } } 2.
答案是c,派生类指针赋值给基类指针后,再把基类指针显式转换为派生类指针,就回到派生类的了.所以((Y)x2)就等于Y的指针了.
其它的选项都不行.
再问: 指针: 派生类指针: 基类指针: 神马?
再答: 6. X x1 = new X(); 7. X x2 = new Y(); 8. Y y1 = new Y(); 应该是 6. X* x1 = new X(); 7. X* x2 = new Y(); 8. Y* y1 = new Y();
再问: 指针:X* x1 = new X(); 派生类指针:X* x2 = new Y(); 基类指针:Y* y1 = new Y();
再答: X是Y的基类 基类指针:X* x1 = new X(); 派生类赋值给基类指针:X* x2 = new Y(); 派生类指针:Y* y1 = new Y();