1. 继承
1.1 继承
继承 - 让子类直接拥有父类的属性和方法。
子类 - 继承者;
父类 - 被继承者;
关系:父类拥有的东西,子类都有,但是子类除了有父类的东西以外还有一些额外特有的东西。
class Person:
def __init__(self):
self.name = '小明'
self.age = 18
self.gender = '男'
def eat(self):
print('吃饭')
def sleep(self):
print('睡觉')
# class Student:
# def __init__(self):
# self.name = '小明'
# self.age = 18
# self.gender = '男'
# self.study_id = '001'
#
# def eat(self):
# print('吃饭')
#
# def sleep(self):
# print('睡觉')
#
# def study(self):
# print('学习')
1.2 继承的作用
子类是可以继承父类所有的内容(包括:类属性、对象属性、对象方法、类方法、静态方法)。
"""
class 类名(父类):
说明文档
类的内容
"""
class Student(Person):
pass
stu = Student()
print(stu.name, stu.age, stu.gender)
stu.eat()
stu.sleep()
class A:
x = 123
def __init__(self):
self.m = 10
self.n = 20
def func1(self):
print('对象方法')
@classmethod
def func2(cls):
print('类方法')
@staticmethod
def func3():
print('静态方法')
class B(A):
pass
b = B()
print(b.m)
b.func1()
print(B.x)
B.func2()
B.func3()
1.3 在子类中添加
1.3.1 添加类属性和添加方法
直接在子类中定义新的类属性和新的方法。
1.3.2 在子类中添加对象属性
需要在子类的__init__方法中通过super()去调用父类的__init__方法来继承父类的对象属性。
class Person:
def __init__(self):
print('========Person中的init方法========')
self.name = '小明'
self.age = 18
self.gender = '男'
def eat