legongju.com
我们一直在努力
2025-01-13 10:43 | 星期一

java中composition如何实现多态性

在Java中,组合(Composition)是一种结构型设计模式,它允许一个类包含其他类的对象。多态性是指允许不同类的对象对同一消息做出响应。在Java中,多态性通常通过继承和接口实现。然而,组合也可以实现多态性,通过使用引用类型来指向子类的对象。

以下是一个使用组合实现多态性的示例:

  1. 首先,创建一个基类Animal
public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound");
    }
}
  1. 然后,创建两个子类DogCat,它们都继承自Animal类:
public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The cat meows");
    }
}
  1. 接下来,创建一个AnimalContainer类,它包含一个Animal类型的引用:
public class AnimalContainer {
    private Animal animal;

    public AnimalContainer(Animal animal) {
        this.animal = animal;
    }

    public void setAnimal(Animal animal) {
        this.animal = animal;
    }

    public void performSound() {
        animal.makeSound();
    }
}
  1. 最后,在main方法中,使用AnimalContainer类来展示多态性:
public class Main {
    public static void main(String[] args) {
        AnimalContainer container = new AnimalContainer(new Dog());
        container.performSound(); // 输出:The dog barks

        container.setAnimal(new Cat());
        container.performSound(); // 输出:The cat meows
    }
}

在这个示例中,我们使用AnimalContainer类的animal引用来存储不同类型的子类对象(DogCat)。当我们调用performSound()方法时,实际执行的是子类对象的makeSound()方法,从而实现了多态性。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/82482.html

相关推荐

  • java中strip()方法的作用是什么

    java中strip()方法的作用是什么

    在Java中,strip()方法是一个字符串处理方法,它用于删除字符串开头和结尾的空白字符。这些空白字符可以包括空格、制表符、换行符等。strip()方法是在Java 11中引...

  • 如何结合其他方法优化java的strip()

    如何结合其他方法优化java的strip()

    strip() 是 Java 11 中引入的一个方法,用于删除字符串开头和结尾的空白字符。要优化 strip(),你可以将其与其他字符串处理方法结合使用,以提高代码的性能和可读...

  • java strip()方法对性能有何影响

    java strip()方法对性能有何影响

    strip() 方法在 Java 中用于删除字符串开头和结尾的空白字符。这个方法对性能的影响取决于具体的使用场景和字符串的大小。
    在大多数情况下,strip() 方法的...

  • strip()方法在java编程中的实际应用

    strip()方法在java编程中的实际应用

    在Java编程中,strip()方法(在较旧的Java版本中可能被称为trim()方法)用于删除字符串开头和结尾的空白字符。空白字符可以包括空格、制表符、换行符等。这个方法...

  • java中composition怎样优化类设计

    java中composition怎样优化类设计

    在Java中,Composition(组合)是一种常用的类设计方法,用于通过关联、聚合或依赖关系来构建更复杂的类。为了优化类设计,可以遵循以下几点建议: 明确职责:确...

  • java中composition如何实现代码复用

    java中composition如何实现代码复用

    在Java中,组合(Composition)是一种实现代码复用的有效方法。通过将一个类的对象作为另一个类的成员变量,可以实现代码重用和模块化。以下是一个简单的示例,说...

  • java的scanner如何实现输入流的控制

    java的scanner如何实现输入流的控制

    Java的Scanner类提供了一种简单的方式来从输入流(如控制台)读取数据。要实现输入流的控制,你可以使用Scanner类的方法来读取不同类型的数据,例如整数、浮点数...

  • java的scanner怎样处理输入超时

    java的scanner怎样处理输入超时

    在Java中,使用Scanner类处理输入超时时,可以通过设置超时参数来实现。以下是一个示例:
    import java.util.Scanner;
    import java.util.InputMismatch...