大佬教程收集整理的这篇文章主要介绍了在这种情况下,为什么要调用父类方法而不是子类?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当您使用类型A的引用时,您只会看到为类A定义的方法。由于doSomething
B中不会覆盖doSomething
B(因为它具有不同的签名),因此不会调用它。
如果要使用类型B的引用,则两种方法都将可用,并且doSomething
将选择B 类的方法,因为它具有更具体的参数(字符串与对象)。
我有一个父类A,及其子B。两者都具有doSomething
带有diff类型参数的方法。
A级
package Inheritance;
public class A {
public void doSomething(Object str){
System.out.println("Base impl:"+str);
}
}
B级
package Inheritance;
public class B extends A{
public void doSomething(String str){
System.out.println("Child impl:"+str);
}
public static void main(String[] args) {
A a = new B();
a.doSomething("override");
}
}
运行此命令时,将获得“ Base impl:override”作为输出!
a
指向的对象B
,而他经过的说法是String
,所以不应该调用它B
的doSomething(String str)
方法是什么?
以上是大佬教程为你收集整理的在这种情况下,为什么要调用父类方法而不是子类?全部内容,希望文章能够帮你解决在这种情况下,为什么要调用父类方法而不是子类?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。