求教一道模拟题?

JackJia 2002-12-06 11:59:56
Given the following class definitions:
1. class BaseWidget extends Object{
2. String name="BaseWidget";
3. void speak(){System.out.println("I am a "+name);}
4. }
5. class TypeAWidget extends BaseWidget{
6. TypeAWidget(){name="TypeA";}
7. }

Which of the following code fragments will compile and execute without error?
a. Object A=new BaseWidget();
A.speak();
b. BaseWidget B=new TypeAWidget();
B.speak();
c. TypeAWidget C=new BaseWidget();
C.speak();

答案为b.
请问:a 为什么不对???

...全文
51 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
JackJia 2002-12-10
  • 打赏
  • 举报
回复
so thanks everyone!!
shimingtu 2002-12-09
  • 打赏
  • 举报
回复
楼上的对!
Jupiter520 2002-12-09
  • 打赏
  • 举报
回复
简单一句话:
Object类中没有speak()这个方法。
而a中实例化的是Object类。所以他找不到speak()方法。所以错了。
qxjavajava 2002-12-09
  • 打赏
  • 举报
回复
运行一下你就会发现一些很有意思的东西。
in the TypeAWidget
Class is:class TypeAWidget
总结得出结论就是
class Father
{}
class Child extends Father
{}
1 Father a = new Child()
a 应该是Child 的实例
2 a 既然是子类的实例,所以a应该调用子类Child的方法,如果子类中没有这个方法,a 会到父类中寻找这个方法。如果父类中也没有,那就只能出error了。
qxjavajava 2002-12-09
  • 打赏
  • 举报
回复
之所以选b 最关键的可是说是因为 Object 类里没有speak()方法
看看这个例子再说
class BaseWidget extends Object{
String name="BaseWidget";
void speak(){System.out.println("I am a "+name);}
}
public class TypeAWidget extends BaseWidget{
TypeAWidget(){name="TypeA";}
void speak(){System.out.println("in the TypeAWidget");}
public static void main(String args[])
{
Object A=new BaseWidget();
//A.speak();

BaseWidget B=new TypeAWidget();
B.speak();
System.out.println("Class is:" +B.getClass().toString());


}
}
imwj 2002-12-08
  • 打赏
  • 举报
回复
up
JackJia 2002-12-08
  • 打赏
  • 举报
回复
up

JackJia 2002-12-08
  • 打赏
  • 举报
回复
帮帮忙!
JackJia 2002-12-07
  • 打赏
  • 举报
回复
up
telenths 2002-12-07
  • 打赏
  • 举报
回复
不知道 但是
如果
class BaseWidget implements SomeInterface

那么
SomeInterface A=new BaseWidget();
A.speak();
就一定是对的

50,679

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧