温馨提示×

Java泛型extends能否实现多态

小樊
82
2024-09-29 23:00:16
栏目: 编程语言

Java泛型中的extends关键字可以实现多态。在Java中,多态是指允许一个类的引用变量指向另一个类的对象。通过使用extends关键字,你可以创建一个泛型类,该类可以继承另一个类或实现一个接口。这样,你可以使用泛型类来处理不同类型的对象,同时保持多态性。

以下是一个简单的示例,说明如何使用extends关键字实现多态:

// 定义一个基类(父类)Animal
class Animal {
    void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

// 定义一个泛型类Dog,继承自Animal类
class Dog<T extends Animal> extends Animal {
    // Dog类继承了Animal类,因此可以实现多态
    void fetch() {
        System.out.println("The dog fetches the ball");
    }
}

// 定义一个泛型类Cat,继承自Animal类
class Cat<T extends Animal> extends Animal {
    // Cat类继承了Animal类,因此可以实现多态
    void scratch() {
        System.out.println("The cat scratches");
    }
}

public class Main {
    public static void main(String[] args) {
        // 使用泛型类Dog和Cat,它们都继承自Animal类,因此可以实现多态
        Animal myAnimal = new Dog<>();
        myAnimal.makeSound(); // 输出:The animal makes a sound
        ((Dog) myAnimal).fetch(); // 输出:The dog fetches the ball

        myAnimal = new Cat<>();
        myAnimal.makeSound(); // 输出:The animal makes a sound
        ((Cat) myAnimal).scratch(); // 输出:The cat scratches
    }
}

在这个示例中,我们定义了一个基类Animal和两个泛型子类DogCat,它们都继承自Animal类。我们可以使用Animal类型的引用来指向DogCat对象,从而实现多态。

0