python类的继承及类的定制

本文介绍了Python中的类与继承概念,包括子类继承父类的属性和方法,多层继承以及多重继承的工作原理。通过示例展示了如何创建子类并调用父类的属性和方法,同时解释了在多重继承中如何处理方法冲突。最后,讨论了类的定制,即在继承基础上如何增加新的属性和方法。

首先看下语法:
在这里插入图片描述
X类是Y类的子类,X类就会继承Y类的属性与方法。

各级实例和各级类之间的关系:

  • 子类创建的实例也属于父类
  • 父类创建的实例不属于子类
  • 所有类创建的实例都属于根类(Object)
  • 类的继承中子类属于父类,子类创建的实例也属于父类

继承有多层继承和多重继承
多层继承:
子类不仅可以继承父类,还可以继承父类的父类,以此类推
子类可以调用父类的属性与方法,也可以调用父类的父类的属性与方法。这就是多层继承。
#直接运行代码

#明星类
class Star:
    glasses = "墨镜"

#音乐人继承了明星
class Musician(Star):
    loveMusic = True

# Rapper继承了音乐人
class Rapper(Musician):
    pass

csunYuk = Rapper()
print(csunYuk.glasses)
print(csunYuk.loveMusic)

多重继承

一个类可以继承多个类, 语法是class Z(X,Y) 。
比如我们将“说唱家”定义成一个类Rapper,它继承于音乐人与演说家两个类。 那么它的语法就是 class Rapper(Musician,Orator)。 Rapper是Musician的子类,也是Orator的子类。
特别提醒:
class Rapper(Musician,Orator)括号内的父类是有顺序区别的, 与子类Rapper关系更近的父类放在左边。 也就是Rapper类与父类Musician更为相似。
举个例子:

#音乐人
class Musician():
    loveMusic = True
    def intr(self):
        print("我喜欢音乐")
        print("我来自音乐界")
#演说家       
class Orator():
    speak = "流利的说"
    def intr(self):
        print("我喜欢演说")
        print("我来自演讲界")              
# Rapper继承了音乐人与演说家
class Rapper(Musician,Orator):
    pass

csunYuk = Rapper()
print(csunYuk.loveMusic)
print(csunYuk.speak)
csunYuk.intr()

csunYuk继承了父类Musician的属性loveMusic,也继承了父类Orator的属性speak;当两个父类都具有intr()类方法时,它会优先继承左边的父类,也就是父类Musician的方法。
江湖秘籍: 多重继承中, 子类继承于多个父类的属性与方法, 但是优先继承于左边父类的属性与方法。
在这里插入图片描述
类的定制:
Rapper类继承Musician,但是它增加了属性garrulous,增加了方法composition,这就是类的定制。
子类可以在继承父类的基础上进行定制: 可以创建新属性、新方法;也可以改变继承到的属性或方法。
举个例子:

#音乐人
class Musician():
    loveMusic = True
    def intr(self):
        print("我喜欢音乐")
        print("我来自音乐界")
    def sing(self):
        print("我在唱歌")
# Rapper继承音乐人
class Rapper(Musician): #类的继承
    garrulous = True    #类的定制 , 增加属性
    def composition(self):  #类的定制, 增加方法
        print("我可以创作简单的歌词")

csunYuk = Rapper()
print(csunYuk.loveMusic)
print(csunYuk.garrulous)
csunYuk.composition()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值