Java中如何实现多态性的实例化?
时间: 2024-10-12 20:18:01 浏览: 24
Java运行时多态性的实现.rar
在Java中,实现多态性的实例化通常涉及到父类引用指向子类对象。这里有几种常见的方式:
1. **方法重写** (Overriding): 通过创建子类并重写父类的方法,然后在父类类型的变量上调用该方法。当你通过父类引用调用时,会调用子类的实际实现。
```java
ParentClass parent = new ChildClass(); // 子类实例化
parent.parentMethod(); // 调用的是ChildClass版本的方法
```
2. **泛型** (Generics): 使用泛型可以保证运行时的多态性,比如 List 接口,你可以指定任意类型作为元素,而不需要知道具体的实现。
3. **接口** (Interface): 实现接口的类默认具有接口中所有方法的声明(尽管没有实现),因此通过接口引用可以调用实现该接口的所有类的方法。
```java
List<? extends Animal> animals = new ArrayList<>(); // 动物列表,可以放任何子类动物
animals.add(new Dog()); // 动物列表接受Dog对象
```
4. **抽象方法和抽象类** (Abstract Methods): 如果父类有抽象方法,那么子类必须实现它们。这样,当父类引用实例化子类时,子类的具体实现就显示出来。
```java
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}
Shape shape = new Circle(); // 圆实例化为Shape类型
shape.draw(); // 输出 "Drawing a circle"
```
阅读全文