我一直在努力理解java中的重要性多态性概念。我完全理解多态性的概念,即使用接口的对象来调用subcalss的方法。我一直在阅读一篇文章。其中指出:
让Java虚拟机确定哪个方法实现 根据对象的实际类调用,就是你如何实现的 你的程序中多态的全部功能。
所以我明白了,jvm是如此强大以至于它可以在实际的对象类的基础上调用方法。但是作为程序员我如何得到任何好处,因为我可以直接创建子类的对象并且可以有没有把它称为方法?在任何方面,多态性如何使程序员容易?
答案 0 :(得分:1)
关于设计实践和设计模式。在了解隐藏在这些概念中的深度之前,您可能希望阅读设计模式(例如此类http://en.wikipedia.org/wiki/Design_Patterns)。但无论哪种方式,这都是一个快速的概述:
设计实践:设计界面。让我们说你有一个界面对象列表,让我们说动物,像这样:
List<Animal> animals = new ArrayList<>();
animals.add(new Cat());
animals.add(new Dog());
在您将一些实现该接口的类对象放入其中后,您可以执行此操作,例如:
for(Animal animal : animals) {
animal.printNoiseItMakes();
}
如果动物是猫,那么它会打印出#34; Meow&#34;,但它可能是一只狗并打印&#34; Woof&#34;。问题是,在您使用界面的代码中,您不必担心实施。