出几道多态相关的程序阅读题。
时间: 2024-09-07 16:06:13 浏览: 43
史上最全60道多线程面试题答案
好的,这里有两个涉及多态性的程序阅读题目:
**题目一:动物类与子类**
```java
// 假设有一个抽象动物类Animal
abstract class Animal {
abstract void sound();
}
// 子类Dog和Cat分别实现Animal
class Dog extends Animal {
@Override
public void sound() {
System.out.println("汪汪");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("喵喵");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Dog(); // 动物引用指向Dog实例
Animal myOtherAnimal = new Cat(); // 另一个动物引用指向Cat实例
// 调用sound方法,体现多态性
myAnimal.sound();
myOtherAnimal.sound();
}
}
```
**问题:**
1. 这段代码展示了哪种类型的多态性?
2. 如果我们在这里添加一个新的子类Bird并实现sound方法,如何修改代码以支持新类?
**题目二: polymorphic array 示例**
```python
# 假设有Shape接口和两个实现了它的类Circle和Square
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
shapes = [Circle(5), Square(6)] # polymorphic list
total_area = sum(shape.area() for shape in shapes)
```
**问题:**
1. 这里是如何利用多态计算形状总面积的?
2. 如果我们添加一个Triangle类,需要做哪些修改才能让其也参与到area计算中?
希望这些问题能帮助你理解多态的应用场景。如果还有其他关于编程、多态的理解需求,随时提问哦!
阅读全文