"""
类的继承
继承(Inheritance)就是在继承原有类功能的基础上,增加新的功能(属性或方法),形成新的类,相对于继承的原有类称为子类,
被继承的原有类叫父类。
继承的基本格式:
class 子类名(父类名)
class 子类名(父类名1, 父类名2, ...) # 继承多个父类
"""
class Book:
"""书籍类"""
def __init__(self, book_name, book_author, book_price):
self.name = book_name
self.author = book_author
self.price = book_price
def print_book_info(self): # 打印书的信息
book_info = '书名:' + self.name + ',作者:' + self.author + ',价格:$' + str(self.price)
return book_info
class SubBook(Book): # 继承父类 Book 定义子类 SubBook
"""继承书籍类的子书籍类"""
def __init__(self, book_name, book_author, book_price, book_numbers): # 子类重新定义 __init__
super().__init__(book_name, book_author, book_price) # super() 方法实现父类与子类的关联
self.color = 'black' # 增加颜色属性
self.material = 'paper' # 增加材质属性
self.numbers = book_numbers # 增加购书总量
def total_price(self): # 求购书总价
total = self.price * self.numbers
return total
# ==================================================================== 调用类及实例
book_of_name = input('请输入书籍名称:')
book_of_author = input('请输入书籍作者:')
book_of_price = float(input('请输入书籍价格:'))
book_of_numbers = int(input('请输入购买书籍总数:'))
my_book = SubBook(book_of_name, book_of_author, book_of_price, book_of_numbers)
print('\n书籍信息:', my_book.print_book_info())
print('购买书籍总价:$', my_book.total_price())
"""
继承使用方法:
(1)在子类声明时,引入父类名:“class SubBox(Box):”
(2)重新定义子类的 __init__ 函数,若父类 __init__ 有参数,则照抄父类函数的参数
(3)在子类 __init__ 函数提供 super 函数,实现父类与子类的关联,若父类有参数,需要同步参数(self 除外),如:
super().__init__(length, width, height)
(4)可以在子类中增加新属性定义
(5)可以在子类中增加新方法定义
(6)可以重写父类中定义的方法
"""