当前位置: 技术问答>java相关
求教一道模拟题?
来源: 互联网 发布时间:2017-03-16
本文导语: 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 follow...
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 为什么不对???
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 为什么不对???
|
之所以选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());
}
}
看看这个例子再说
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());
}
}
|
简单一句话:
Object类中没有speak()这个方法。
而a中实例化的是Object类。所以他找不到speak()方法。所以错了。
Object类中没有speak()这个方法。
而a中实例化的是Object类。所以他找不到speak()方法。所以错了。
|
up
|
楼上的对!
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。