目录
一、继承
继承就是让类和类之间转变为父子关系,子类默认继承父类的属性和方法
在Python中,继承是一个非常强大的特性,它允许我们创建一个新的类(称为子类),这个新类可以继承另一个类(称为父类或基类)的属性和方法
这样,子类就可以复用父类的代码,同时还可以添加新的属性和方法或者重写父类的方法来实现特定的功能
想象一下,你有一个“动物”类,这个类描述了所有动物共有的属性和方法,比如“吃”和“呼吸”
然后,你想创建一个特定的动物类,比如“狗”,狗也是动物,所以它应该继承“动物”类的所有属性和方法,但同时,狗还有一些特有的属性和方法,比如“叫”和“摇尾巴”
通过继承,你可以这样做:
首先,定义一个“动物”类,包含所有动物共有的属性和方法
然后,定义一个“狗”类,让它继承自“动物”类。这样,“狗”类就自动拥有了“动物”类的所有属性和方法
最后,你可以在“狗”类中添加狗特有的属性和方法
1.1 语法
class 类名(父类名):
代码块...
注意:继承分为单继承和多继承
1.2 单继承
单继承是指一个子类只继承一个父类的情况
这是最简单、最直接的继承方式
在单继承中,子类可以访问父类的所有公开(public)和受保护(protected)成员(属性和方法),但不能直接访问私有(private)成员(通常以双下划线__开头的成员名)
不过,通过一些特殊的方法(如名称修饰),子类仍然可以间接地访问这些私有成员
eg:
class Person: # 父类
def eat(self):
print("我会吃饭")
def sing(self):
print("我是唱歌小能手")
class Girl(Person): # Person类的子类
pass # 占位符,代码里面类下面不写任何东西,会自动跳过,不会报错
class Boy(Person): # Person类的子类
pass
girl = Girl()
girl.eat()
girl.sing()
# 输出内容:
# 我会吃饭
# 我是唱歌小能手
boy = Boy()
boy.eat()
boy.sing()
# 输出内容:
# 我会吃饭
# 我是唱歌小能手
# 总结:子类可以继承父类的属性和方法,就算子类自己没有,也可以使用父类的。
1.3 继承的传递(多重继承)
A/B/C C(子类) 继承于B(父类), B类 (子类) 继承A类 (父类), C类具有 A/B 类的属性和方法
子类拥有父类的父类的属性和方法
eg:
class Father: # 父类
def eat(self):
print("吃饭")
def sleep(self):
print("睡觉")
class Son(Father): # Father类的子类
pass
class Grandson(Son): # Son的子类
pass
grandson = Grandson()
grandson.eat()
grandson.sleep()
# 输出结果:
# 吃饭
# 睡觉