首页 > 解决方案 > 在java中用不同的参数类型覆盖子类中的方法

问题描述

我的班级结构如下所示 -

public class A {

    public void print(A a) {
        System.out.println("Class A");
    }
}
public class B extends A {

    public void print(B b) {
        System.out.println("Class B");
    }
}

如果在测试课上我这样做-

A a = new B();
a.print(new A());
a.print(new B());

结果应该是什么?我期待它是压倒一切的,如果我传递 A 的对象,它会给我强制转换异常,但这并没有发生。在每种情况下,无论您是从子对象还是父对象调用它,它都会调用父方法。有人可以描述一下它背后的概念吗?

标签: javainheritancepolymorphismoverriding

解决方案


推荐阅读