多态的例子
时间: 2023-07-19 20:15:09 浏览: 45
多态是面向对象编程中一种重要的概念。它允许不同类型的对象对同一消息作出响应,而不需要知道具体的类型。
一个常见的例子是使用多态实现“动物叫声”的问题:
假设我们有三种动物:狗,猫和鸟。我们可以创建一个抽象类Animal,并在其中定义一个抽象方法makeSound(),表示动物的叫声。然后,我们可以为每种动物创建一个子类,在每个子类中实现makeSound()方法。
当我们调用每种动物的makeSound()方法时,它们会发出不同的叫声,这就是多态的一个例子。
```
abstract class Animal {
abstract void makeSound();
}
class Dog extends Animal {
void makeSound() {
System.out.println("汪汪汪");
}
}
class Cat extends Animal {
void makeSound() {
System.out.println("喵喵喵");
}
}
class Bird extends Animal {
void makeSound() {
System.out.println("唧唧唧");
}
}
```
相关问题
java多态分装例子
Java中的多态是指同一个方法可以根据不同的对象调用出不同的行为。多态的实现需要满足两个条件:继承和方法重写。下面是一个Java多态的封装例子:
```java
// 父类Animal
class Animal {
public void sound() {
System.out.println("动物发出声音"); }
}
// 子类Dog
class Dog extends Animal {
@Override
public void sound() {
System.out.println("狗发出汪汪声");
}
}
// 子类Cat
class Cat extends Animal {
@Override
public void sound() {
System.out.println("猫发出喵喵声");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 输出:狗发出汪汪声
animal2.sound(); // 输出:猫发出喵喵声
}
}
```
在上面的例子中,Animal是父类,Dog和Cat是子类。父类Animal中有一个sound()方法,子类Dog和Cat分别重写了这个方法。在主函数中,我们创建了一个Animal类型的对象animal1,并将其指向一个Dog对象,创建了一个Animal类型的对象animal2,并将其指向一个Cat对象。当我们调用animal1.sound()时,实际上调用的是Dog类中重写的sound()方法,输出狗发出汪汪声。当我们调用animal2.sound()时,实际上调用的是Cat类中重写的sound()方法,输出猫发出喵喵声。
python多态的例子
多态是面向对象编程中的一个重要概念,它指的是同一种类型的对象在不同的情况下会表现出不同的行为。在 Python 中,多态可以通过方法的重写和方法的重载来实现。
下面是一个使用方法重写实现多态的例子:
```python
class Animal:
def __init__(self, name):
self.name = name
def make_sound(self):
pass
class Cat(Animal):
def make_sound(self):
print(self.name + " makes sound 'meow'")
class Dog(Animal):
def make_sound(self):
print(self.name + " makes sound 'woof'")
animals = [Cat('Tom'), Dog('Jerry')]
for animal in animals:
animal.make_sound()
```
在上面的例子中,我们定义了一个 `Animal` 类和两个子类 `Cat` 和 `Dog`。在父类 `Animal` 中定义了一个 `make_sound` 方法,但是没有具体的实现。在子类 `Cat` 和 `Dog` 中重写了 `make_sound` 方法,并分别输出了它们的叫声。我们创建了一个包含 `Cat` 和 `Dog` 实例的列表 `animals`,并遍历该列表,调用每个实例的 `make_sound` 方法。由于 `Cat` 和 `Dog` 实例都是 `Animal` 类型的,所以它们的 `make_sound` 方法被调用时会表现出不同的行为,这就是多态的体现。
另外,Python 还支持方法的重载,但是由于 Python 是动态类型语言,所以并不需要使用方法的重载来实现多态。