java - java : Parent method is called when ambiguity in Inheritance

标签 java inheritance

<分区>

考虑以下因素:

class Parent {
    public void print(Object s) {
        System.out.println("I am inside Parent Object Method.");
    }
}

public class Child extends Parent{

    public void print(String s) {
        System.out.println("I am inside Child String Method.");
    }

    public static void main(String arg[]) {
        Parent a = new Child();
        a.print(null);
    }
}

输出:

I am inside Parent Object Method

这里 JVM 正在调用 Parent Method 代替 child method,而不管“应该调用更具体的方法”的逻辑含糊不清。

在 java 中实现此实现的原因是什么?

最佳答案

这里不涉及任何oververding。涉及的是重载。调用 Object 的重载方法导致传递值 1 转换为 Integer Object 并调用 Parent 类的打印方法,因为它可用于 Child

这里没有歧义,因为您重载了不同类型的方法。

关于java - java : Parent method is called when ambiguity in Inheritance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156335/

相关文章:

java - 无法在 Servlet 中的 If 语句内重定向

java - 如何使用 Servlet 将文件上传到数据库?

java - 级联 ="all-delete- orphan"不再被引用

c++ - 在包含不同子类的 vector 中的某些对象上调用函数

c# - 如何在此接口(interface)与继承 C# 示例中最大化代码重用

java - 如何配置监听器来处理来自rabbitmq spring中同一队列的多个交换器的消息

c# - .Net继承和方法重载

java - 是否可以将一个上下文注入(inject)到另一个上下文中?

javascript - 我应该从 HTMLProps<HTMLElement> 继承 react Prop 吗?

java - Hibernate:Criteria API:查询 CollectionOfElements 中不包含指定元素的实体?