程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在这种情况下,为什么要调用父类方法而不是子类?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在这种情况下,为什么要调用父类方法而不是子类??

开发过程中遇到在这种情况下,为什么要调用父类方法而不是子类?的问题如何解决?下面主要结合日常开发的经验,给出你关于在这种情况下,为什么要调用父类方法而不是子类?的解决方法建议,希望对你解决在这种情况下,为什么要调用父类方法而不是子类?有所启发或帮助;

您使用类型A的引用时,您只会看到为类A定义的方法。由于doSomethingB中不会覆盖doSomethingB(因为它具有不同的签名),因此不会调用它。

如果要使用类型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,所以不应该调用它BdoSomething(String str)方法是什么?

大佬总结

以上是大佬教程为你收集整理的在这种情况下,为什么要调用父类方法而不是子类?全部内容,希望文章能够帮你解决在这种情况下,为什么要调用父类方法而不是子类?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。