我想知道为什么允许它具有不同类型的对象引用?
例如;

Animal cow = new Cow();

你能举一个例子,说明使用不同类型的对象引用是有用的吗?

编辑: Cow extends Animal

最佳答案

这是多态和抽象的核心。例如,这意味着我可以写:

public void handleData(InputStream input) {
    ...
}

...并处理任何类型的输入流,无论是来自文件、网络、内存等。或者同样,如果您有一个 List<String> ,您可以要求它的元素 0 而不管实现等。

将子类的实例视为父类(super class)的实例的能力称为 Liskov's Substitution Principle 。它允许松散耦合和代码重用。

另请阅读 Polymorphism part of the Java tutorial 以获取更多信息。

关于java - 为什么在 Java 中允许不同类型的对象引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13640833/

10-11 20:38