Python之类的继承

一、基本语法

class ClassName(baseclasslist):
	statement   #(类的主体)

参数说明:

  • ClassName:用于指定类名
  • baseclasslist:用于指定要继承的基类(父类),可以有多个,类名之间用逗号’,'隔开。如不指定,默认使用所有Python对象的根类object
  • satement:类体,主要由类变量(或类成员)、方法、属性等定义语句组成。如果定义类时,没有想好类的具体功能时,可以在类体中使用Pass语句代替。

二、方法重写

基类的所有成员(属性、方法)都会被派生类继承。当基类中的某个方法不完全适用于派生类时,就要在派生类中重写父类的这个方法。

1、派生类中的构造函数,init()方法的重写

  • 当派生类中没有重写__init__()方法时,派生类中的构造函数就是基类的构造函数,即创建派生类的对象时自动调用基类的构造函数
#基类
class Fruit:
    def __init__(self, color='绿色'):
        self.color = color

    def harvest(self):
        print("水果原来是:" + self.color + "的")

#派生类
class Apple(Fruit):
    pass

apple = Apple()   #此时创建apple对象时自动调用Fruit类的构造函数
apple.harvest()   #水果原来是绿色的
  • 当派生类重写了__init__()方法时,由于一个类中只有一个构造函数,所以此时派生类中的构造函数为重写的__init__()方法,而不是基类中的构造函数。
class Fruit:
    def __init__(self, color='绿色'):
        self.color = color

    def harvest(self):
        print("水果原来是:" + self.color + "的")

class Apple(Fruit):
    def __init__(self, color='红色'):
    	print("这是Apple类的构造函数")
        self.color = color
        
apple = Apple()   #此时apple对象调用的是重写的构造函数
apple.harvest()   #这是Apple类的构造函数 水果原来是红色的
  • 当派生类重写了构造函数但是还想继承(调用)父类中的__init__()方法时,需要用super()函数来调用
class Fruit:
    def __init__(self, color='绿色'):
        self.color = color

    def harvest(self):
        print("水果原来是:" + self.color + "的")

class Apple(Fruit):
    def __init__(self, color='红色'):
        self.color = color
        print("这是Apple类的构造函数")
        super().__init__()

apple = Apple()   #此时apple对象调用的是重写的构造函数
apple.harvest()   #这是Apple类的构造函数 水果原来是绿色的

注意由于super().init()在self.color=color之后,所以最后类中color属性为绿色。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值