Java 在“中调用这些给定方法的实际区别是什么?”;方法重写";在爪哇?
我知道工作流程,因为在运行时B的对象将被创建,所以B的方法将被调用。 我知道这里使用了多态性(方法重写,我想知道它的实际用途) 我想知道a.method()和;方法(); 参考a如何比使用参考b更好? 我会得到同样的结果。 从实用角度看,它们之间有什么区别Java 在“中调用这些给定方法的实际区别是什么?”;方法重写";在爪哇?,java,overriding,Java,Overriding,我知道工作流程,因为在运行时B的对象将被创建,所以B的方法将被调用。 我知道这里使用了多态性(方法重写,我想知道它的实际用途) 我想知道a.method()和;方法(); 参考a如何比使用参考b更好? 我会得到同样的结果。 从实用角度看,它们之间有什么区别 谢谢 考虑一个场景,其中您有一个列表,并且希望为列表中的每个实例调用方法。其中一些实例是类B的实例,但其他实例可能是扩展了A的其他类的实例。多态性将允许您编写甚至不知道类B存在的代码,并且仍然执行类B的方法对于这样一个简单的示例,一个方法比另
谢谢 考虑一个场景,其中您有一个
列表
,并且希望为列表中的每个实例调用方法
。其中一些实例是类B的实例,但其他实例可能是扩展了A的其他类的实例。多态性将允许您编写甚至不知道类B存在的代码,并且仍然执行类B的方法对于这样一个简单的示例,一个方法比另一个方法没有任何好处
但是想象一下,当你调用其他人的代码时,它将返回a
类型的东西。在这里,多态性将允许该代码实际返回B
类型的内容,并对该方法进行定制实现。正确的方法将被调用,您不必担心它是已返回的子类。您应该查看维基百科关于多态性的文章
class A {
public void method() {
System.out.println("This is the method of A");
}
}
public class B extends A {
public void method() {
System.out.println("This is the method of B");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new B();
a.method();
B b = new B();
b.method();
}
}