关于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:出现编译错误 展开
{
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:出现编译错误 展开
2个回答
展开全部
base.methodB();
这里错了,Base类中没有methodB方法,所以base点不出methodB方法来,点的话肯定会编译错误,不过你这个根本就是硬错误,如果不是手写的代码的话,编程软件都会直接报错的
这里错了,Base类中没有methodB方法,所以base点不出methodB方法来,点的话肯定会编译错误,不过你这个根本就是硬错误,如果不是手写的代码的话,编程软件都会直接报错的
更多追问追答
追问
但是base 这个变量实际上是Sub的一个引用啊,Sub这个类里有methodB()这个方法啊。请教啊
追答
错了,你Base base = new Sub();应该是实例一个Sub对象,但是声明为Base类,就不可以调用Sub中的methodB方法,之前看错了,这个不是硬错误,是多态中的一种应用,不过报编译错误是肯定的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询