【问题标题】:Selection of method overloading with super-class instance in JavaJava中超类实例方法重载的选择
【发布时间】:2021-06-24 06:19:18
【问题描述】:

假设我有两个类如下。

class Animal {}

class Dog extends Animal {}

class Cat extends Animal {}

在另一个类中,我正在使用不同的参数进行方法重载。

// method 1
public void doSomething(Dog dog) {
// do something
}

// method 2
public void doSomething(Animal animal) {
// do something
}

现在我想知道的是,当我用Cat 实例调用doSomthing 方法时,它是调用方法2 还是抛出错误?

Cat cat = new Cat();
this.doSOmething(cat); 

【问题讨论】:

    标签: java overloading


    【解决方案1】:

    它将调用采用Animal 类型参数的重载方法,因为Cat 扩展自Animal

    public void doSomething(Animal animal) { ... }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-18
      • 2020-11-30
      • 2021-06-03
      • 1970-01-01
      • 2010-12-07
      相关资源
      最近更新 更多