关于JAVA多态方面的,高手请进! 这是一个选择题:答案是D ,为什么是D啊,为什么不是选A啊。

classBase{publicvoidmethod(){System.out.print("Basemethod");}}publicclassSubextendsBa... class Base
{
public void method()
{
System.out.print("Base method");
}
}

public class Sub extends Base
{
public void method()
{
System.out.print("Sub method");
}
public void methodB()
{
System.out.print("Sub methodB");
}
public static void main(String[] args)
{
Base base = new Sub();
base.method();
base.methodB();
}
}

A:Sub method
Sub methodB
B:Base method
Sub methodB
C:Base method
Sub method
D:出现编译错误
展开
 我来答
海明风_化蝶
2011-09-27 · TA获得超过2064个赞
知道大有可为答主
回答量:2261
采纳率:0%
帮助的人:1164万
展开全部
base.methodB();
这里错了,Base类中没有methodB方法,所以base点不出methodB方法来,点的话肯定会编译错误,不过你这个根本就是硬错误,如果不是手写的代码的话,编程软件都会直接报错的
更多追问追答
追问
但是base 这个变量实际上是Sub的一个引用啊,Sub这个类里有methodB()这个方法啊。请教啊
追答
错了,你Base base = new Sub();应该是实例一个Sub对象,但是声明为Base类,就不可以调用Sub中的methodB方法,之前看错了,这个不是硬错误,是多态中的一种应用,不过报编译错误是肯定的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
genen028
2011-09-27 · 超过20用户采纳过TA的回答
知道答主
回答量:431
采纳率:0%
帮助的人:254万
展开全部
有多态性就有方法重写,有方法重写就哟多态性。 这句话对不对?为什么? oop中多态性一般有两方面,一是纵向的,就是父类和子类之间的多态,子类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式