Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在“中调用这些给定方法的实际区别是什么?”;方法重写";在爪哇?_Java_Overriding - Fatal编程技术网

Java 在“中调用这些给定方法的实际区别是什么?”;方法重写";在爪哇?

Java 在“中调用这些给定方法的实际区别是什么?”;方法重写";在爪哇?,java,overriding,Java,Overriding,我知道工作流程,因为在运行时B的对象将被创建,所以B的方法将被调用。 我知道这里使用了多态性(方法重写,我想知道它的实际用途) 我想知道a.method()和;方法(); 参考a如何比使用参考b更好? 我会得到同样的结果。 从实用角度看,它们之间有什么区别 谢谢 考虑一个场景,其中您有一个列表,并且希望为列表中的每个实例调用方法。其中一些实例是类B的实例,但其他实例可能是扩展了A的其他类的实例。多态性将允许您编写甚至不知道类B存在的代码,并且仍然执行类B的方法对于这样一个简单的示例,一个方法比另

我知道工作流程,因为在运行时B的对象将被创建,所以B的方法将被调用。 我知道这里使用了多态性(方法重写,我想知道它的实际用途)

我想知道a.method()和;方法(); 参考a如何比使用参考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();

    }
}