我是Java的初学者,所以,如果这个问题对你来说太简单,我很抱歉。
有人能解释一下Java中的多态性是什么吗? 我只需要一段代码来简单描述它。
谢谢。
答案 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