在Java中Super如何实现多态

发布时间:2025-05-22 23:18:10 作者:小樊
来源:亿速云 阅读:94

在Java中,super关键字用于引用父类(超类)的一个属性、方法或构造器。多态是面向对象编程的一个重要特性,它允许子类对象被当作父类对象对待。在Java中,多态可以通过继承和方法重写来实现。

以下是一个使用super实现多态的例子:

// 父类
class Animal {
    public void speak() {
        System.out.println("The animal makes a sound");
    }
}

// 子类1
class Dog extends Animal {
    @Override
    public void speak() {
        System.out.println("The dog barks");
    }

    public void bark() {
        System.out.println("Woof woof!");
    }
}

// 子类2
class Cat extends Animal {
    @Override
    public void speak() {
        System.out.println("The cat meows");
    }

    public void purr() {
        System.out.println("Purr purr!");
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建一个Animal类型的数组,包含Dog和Cat对象
        Animal[] animals = new Animal[2];
        animals[0] = new Dog();
        animals[1] = new Cat();

        // 遍历数组,调用speak方法
        for (Animal animal : animals) {
            animal.speak(); // 多态:根据实际对象类型调用相应的方法

            // 使用super关键字调用父类的speak方法
            super.speak();
        }
    }
}

在这个例子中,我们有一个父类Animal和两个子类DogCat。子类分别重写了父类的speak方法。在main方法中,我们创建了一个Animal类型的数组,包含DogCat对象。当我们遍历数组并调用speak方法时,会根据实际对象类型调用相应的方法(这就是多态)。同时,我们还可以使用super关键字调用父类的speak方法。

推荐阅读:
  1. Java轻量级锁比重量级锁快吗
  2. java的count(1)、count(*) 、count(列名) 哪些区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java Super超类中的方法如何被覆盖

下一篇:SSL证书如何选择合适的加密算法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》