# 类的继承
class people:
	# 定义基本属性
	name = '张三'
	age = 28
	# 定义私有属性,私有属性在类外部无法直接进行访问
	__weight = 120
	# 定义构造方法
	def __init__(self,name,age,__weight):
		self.name = name
		self.age = age
		self.__weight = __weight
	def speak(self):
		print("%s说:我%d岁。" % (self.name,self.age))

# 单继承示例
class student(people):
	grade = ''
	def __init__(self,name,age,__weight,grade):
		self.grade = grade
		# 调用父类的构造函数
		people.__init__(self,name,age,__weight)
	# 重写父类的speak方法
	def speak(self):
		print("%s说:我%d岁了,我在读%d年级" % (self.name,self.age,self.grade))
		
s = student("王五",28,60,3)
s.speak()
p = people("李四",18,56)
p.speak()
print("在类外部调用公有属性:name:%s" % p.name)
# print("测试在类外部调用私有属性__weight:%s" % p.__weight) # AttributeError: 'people' object has no attribute '__weight'

# 定义演讲者类
class speaker:
	topic = ''
	name = ''
	def __init__(self,name,topic):
		self.name = name
		self.topic = topic
	def speak(self):
		print("我叫%s,我是一个演说家,我演讲的主题是%s" % (self.name,self.topic))
		
# 多重继承测试
class sample(speaker,student):
	a = ''
	def __init__(self,name,age,__weight,grade,topic):
		speaker.__init__(self,name,topic)
		student.__init__(self,name,age,__weight,grade)
# 此处调用了演说家的speak方法,如果speaker中不声明此方法则会调用student中的speak方法。
test = sample("赵六",20,130,3,"我是一个好人")
test.speak()





输出结果如下图:

python面向对象之类的多继承


浏览 374 评论 0 赞 0 砸 0 标签: python
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款