用python# 2.设计一个图书管理系统,基类为类Book,要求有书名和作者属性, 由Book类派生子类AudioBook(有声书,需要具有演说者属性), # 对于Book和AudioBook进行合理的属性及行为的抽象,同时实现该类的控制台打印方法
时间: 2024-02-25 12:55:59 浏览: 116
好的,这是一个比较典型的面向对象编程练手题目,我可以帮你给出一个基本框架,你可以在此基础上进行修改和完善。
```python
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return f"{self.title} by {self.author}"
def print_info(self):
print(self)
class AudioBook(Book):
def __init__(self, title, author, speaker):
super().__init__(title, author)
self.speaker = speaker
def __str__(self):
return f"{self.title} by {self.author}, spoken by {self.speaker}"
def print_info(self):
print(self)
```
这里我们定义了一个基类 `Book`,以及一个继承自 `Book` 的子类 `AudioBook`。`Book` 类拥有 `title` 和 `author` 两个属性,而 `AudioBook` 类在此基础上增加了 `speaker` 属性。同时,两个类都有一个 `print_info()` 方法,用于在控制台打印类的信息。
你可以在此基础上进行测试:
```python
book = Book("The Alchemist", "Paulo Coelho")
book.print_info()
audiobook = AudioBook("The Hitchhiker's Guide to the Galaxy", "Douglas Adams", "Stephen Fry")
audiobook.print_info()
```
输出:
```
The Alchemist by Paulo Coelho
The Hitchhiker's Guide to the Galaxy by Douglas Adams, spoken by Stephen Fry
```
希望这能帮助到你,如果还有其他问题请继续提出。
阅读全文