我已经对该主题进行了进一步研究,并且我意识到,对于纯粹详细说明参数多态性的示例,它不能使用“实现”(它将详细说明子类型多态性),而应该使用泛型。
这是我之前的问题: 什么是 Java 中的参数多态性(示例)?
这是重新编写的代码,可以使用具有单个问题的泛型。
class Pet<T>
{
private T pet;
public Pet(T pet)
{
this.pet = pet;
}
public String talks()
{
// what do i write here?
// pet.talks(); is undefined for type T
}
}
class Cat
{
public String talks()
{
return "Meow";
}
}
class Dog
{
public String talks()
{
return "Woof";
}
}
public class TestPet
{
public static void main(String[] args)
{
Pet<Cat> cat = new Pet<Cat>(new Cat());
System.out.println("Cat says " + cat.talks());
Pet<Dog> dog = new Pet<Dog>(new Dog());
System.out.println("Dog says " + dog.talks());
}
}
我的代码有一个问题,在评论中有详细说明。我不确定如何在不使用 implements 命令的情况下编写它。你知道要写什么吗?