小编use*_*721的帖子

Java:多态只对具有相同签名的方法有用吗?

我看到的多态方法覆盖的唯一例子涉及不带参数的方法,或者至少具有相同的参数列表.考虑常见的Animal/Dog/Cat示例:

public abstract class Animal
{
    public abstract void makeSound();
}

public class Dog extends Animal
{
    public void makeSound()
    {
        System.out.println("woof");
    }
}

public class Cat extends Animal
{
    public void makeSound()
    {
        System.out.println("meow");
    }
}

public class ListenToAnimals
{
    public static void main(String[] args)
    {
        AnimalFactory factory = new AnimalFactory();
        Animal a = factory.getRandomAnimal(); // generate a dog or cat at random
        a.makeSound();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,一切都很好.现在让我们添加另一个在抽象类中部分实现的方法,同时在子类中获得更具体的行为:

public abstract class Animal
{   
    public abstract void makeSound();

    public void speak(String …
Run Code Online (Sandbox Code Playgroud)

java parameters polymorphism factory

4
推荐指数
2
解决办法
2035
查看次数

标签 统计

factory ×1

java ×1

parameters ×1

polymorphism ×1