java中多态的例子

时间:2011-05-11 09:53:13

标签: java oop polymorphism

我是Java的初学者,所以,如果这个问题对你来说太简单,我很抱歉。

有人能解释一下Java中的多态性是什么吗? 我只需要一段代码来简单描述它。

谢谢。

4 个答案:

答案 0 :(得分:3)

看起来像我的作业,但我很无聊,Java让我怀旧。

List<A> list = new ArrayList<A>();
list.add(new A());
list.add(new A());
list.add(new B());

public void printAll() {
    for(A i : list) {
        System.out.println(i.print());
    }
}

class A {
    public String print() {
        return "A";
    }
}

class B extends A {
    @Override
    public String print() {
        return"B";
    }
}

输出如下:

    A
    A
    B

多态部分是在为同一个方法调用执行不同的代码时。循环每次都做同样的事情,但实际上可能会调用不同的实例方法。

答案 1 :(得分:2)

看看JDK本身。您会在很多地方看到多态性,例如,如果您查看java.util集合。 java.util.List接口引用类型的行为类似于ArrayList或LinkedList,具体取决于您为其分配的运行时类型。

答案 2 :(得分:2)

如前所述,有几个教程。这是一个快速的例子,我希望是准确的(就像回答测试一样)

参数多态 同一个类定义了多个具有相同名称但不同参数数组的函数。参数编号和/或类型使得可以将呼叫路由到正确的功能。

class PolyTest1 {
  private void method1(int a) {}
  private void method1(String b) {}
}

继承多态 类可以重新定义其父类的方法之一。对象类型可以调用正确的函数。

public class PolyTest2 extends PolyTest1{

  private void method1(String b) {}
}

答案 3 :(得分:1)

这个问题的第一个答案给出的例子使概念清晰。看一看! Polymorphism vs Overriding vs Overloading