据我了解,参数多态性是一种允许对各种数据(类型)进行统一操作的技术。我的知识正确吗?
这个例子是参数多态吗?
我相信这是因为 Animal.talk 允许调用 talk,而不管特定的动物类型(猫或狗)。
public interface Animal
{
public String talk();
}
public class Cat implements Animal
{
public String talk()
{
return "Cat says Meow!";
}
}
public class Dog implements Animal
{
public String talk()
{
return "Dog says Woof! Woof!";
}
}
import java.util.*;
public class PolymorphismExample
{
public static void main(String[] args)
{
Collection<Animal> animals = new ArrayList<Animal>();
animals.add(new Cat());
animals.add(new Dog());
for (Animal a : animals)
{
System.out.println(a.talk());
}
}
}
Regards.
编辑:如果我的示例没有具体表现出参数多态性,请您提供一个吗?谢谢。
“参数多态性”只是 Java 中“泛型”的另一个术语。这个想法很简单:你陈述什么types将由特定类使用,一个明显的例子存在于所有的集合中java.util
包裹。
为了学习 Java 中泛型的所有细微差别,我强烈推荐 Angelika Langer 的FAQ http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html,它探索了规范的每个角落。
在您的代码中,这一行是使用泛型的示例:
Collection<Animal> animals = new ArrayList<Animal>();
指定集合来保存任何动物对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)