java - Java 中的动态方法绑定(bind)

标签 java polymorphism

用这段代码

public static void doSomething(Animal arg)
{
...
}

以下哪一项更正确? (它们都能正常编译和运行。)有区别吗?

public static void main(String[] args)
{
Animal fido = new Dog();
doSomething(fido);
}

public static void main(String[] args)
{
Dog fido = new Dog();
doSomething(fido);
}

我不认为这很重要,但是有没有更传统的?谢谢。

最佳答案

这取决于您稍后在代码中对这个对象的使用,如果这可能在其余代码中包含其他 Animal,则保留它 Animal,因为调用此方法 (doSomething),这无关紧要(因为 Dog Animal)。

关于java - Java 中的动态方法绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886166/

相关文章:

java - 无法完全更改 Eclipse ADT 主题配色方案

java - 如何从 Tapestry 4 迁移到 5?

java - 对象类型和引用类型之间的区别

c++ - 在 C++ 中一般比较继承层次结构中的对象

java - 如何在 Java 代码中从 azure-maven-plugin 读取 appSettings 变量?

java - 如何强制Eclipse使用maven进行自动构建

java - 为什么我可以在 Android AIDE 中为最终变量重新分配一个新值?

c++ - 同类容器、派生类、初始化列表和移动语义

c++ - C++中的虚拟模板函数

java - 如何从父类和子类的相同方法返回泛型类型