Python类的重用

类的继承

子类继承父类,自动具备了父类中的非私有属性和非私有方法,不需要重新定义,并且可以自己增加新的内容和属性。
在 Python中,object类是所有类的最终父类,除非说明,默认继承object类,
在Python中与c++一样,支持多继承,即一个类可以有多个父类,(而在java中,只允许单的继承)。
继承的语法格式:

			class animal:
		def __init__(self, name):  #构造函数
			self.name = name
	
		def getname(self):
			return self.name
		def setname(self, name):
			self.name = name
	
		def fun(self):
			print("我是一个动物")
	
	class bird(animal):          #这是子类
		def __init__(self, name, zhonglei):
			super(bird, self).__init__(name) #调用父类的构造函数
			self.zhonglei = zhonglei
	
		def set(self, name, zhonglei):
				self.setname(name)
				self.zhonglei = zhonglei
	
		def fun1(self):
				print("我是一只小鸟")
	
	b = bird("张三", "鸟")
	print(b.getname())
	b.fun()
	b.fun1()
	b.set("李四", "鸳鸯")
	
	
	'''
	张三
	我是一个动物
	我是一只小鸟
	'''

格式就是:

class  class_name(father_class_name):

子类调用父类的构造函数格式如下:

super(son_class_name ,  self).__init__()
构造函数

在上例子中也已经用到过构造函数了,init().创建子类对象时,子类一般都会重写构造函数,并调用父类的构造函数,,

多重继承

就是一个类有多个父类,这种情况容易出现问题,
比如一个类A,并有方法fun(), 类B继承了A并重写了方法fun(),而类C继承A和B(),并调用方法fun(),那么此时执行哪一个方法呢。
在Python中规定,执行继承链上最近的方法,即执行B中的fun()方法。

组合:

在Python中,同样支持组合:

		class animal:
			def __init__(self, name):  #构造函数
				self.name = name
		
			def getname(self):
				return self.name
			def setname(self, name):
				self.name = name
		
			def fun(self):
				print("我是一个动物")
		
		class bird(animal):          #这是子类
			def __init__(self, name, zhonglei):
				self.a = animal("鸟")
				self.zhonglei = zhonglei
		
			def set(self, name, zhonglei):
					self.zhonglei = zhonglei
		
			def fun1(self):
					print("我是一只小鸟")
		
		b = bird("张三", "鸟")
		print(b.a.getname())
		
		
		
		'''
		鸟
		'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值