python(12)——继承、多重继承、多态、面向对象的三大特征

本文介绍了面向对象编程中的四个关键概念:继承使得子类继承父类属性和方法,方法重写和super()的使用,多重继承与避免复杂性,以及多态和封装的重要性。通过实例展示了如何在Python中实现这些特性。
摘要由CSDN通过智能技术生成
# 1、继承
# 继承是面向对象的三大特性之一
# -通过继承我们可以使一个类获取到其他类中的属性和方法
# -在定义类时,可以在类名后面的括号中指定父类,子类可以继承父类中的所有属性和方法
# -通过继承可以让子类获取到父类的方法和属性,避免重复代码,遵循OCP原则
# -方法的重写(覆盖,override):若子类与父类有同名的方法,子类实例调用方法时,调用的是子类的方法
# -super()可以用来获取当前类的父类

class animal(object):
	"""docstring for animal"""
	def __init__(self,name):
		self._name = name

	def chi(self):
		print('我会吃!')

	def shui(self):
		print('我会睡!')

class dog(animal):   # 继承父类animal
	def __init__(self,name,age):
		super().__init__(name) # 直接调用父类的__init__来初始化父类中定义的属性
		self._age = age

	@property
	def name(self):
		return self._name

	@property
	def age(self):
		return self._age

	@name.setter
	def name(self,name):
		self._name = name

	@age.setter
	def age(self,age):
		self._age = age 
	
	def kanjia(self):
		print('我还会看家!')
		
d_1 = dog('肥柴',8)
print('我是%s,今年%s岁'%(d_1.name,d_1.age))
d_1.chi()
d_1.shui()
d_1.kanjia()
# =========================
# 我是肥柴,今年8岁
# 我会吃!
# 我会睡!
# 我还会看家!
# ==========================

# 2、多重继承
# 在python中支持多重继承,可为一个类同时指定多个父类
# -多重继承的子类会获取到所有父类中的方法
# -开发中应尽量避免使用多重继承,寻找方法过于复杂


# 3、多态,面向对象的三大特征之一

class AAA(object):
	"""docstring for AAA"""
	def __init__(self, name):
		self._name = name

	@property
	def name(self):
		return self._name
	
# 定义一个函数
# 对于say_hello()这个函数来说,只要对象中含有name属性,它就可以作为参数传递
#   这个函数并不会考虑对象的类型,只要有name属性即可
def say_hello(object):
	print('你好,%s'%object.name)

a = AAA('小A')

say_hello(a)
say_hello(d_1)
# =========================
# 你好,小A
# 你好,肥柴
# ==========================


# 4、面向对象的三大特征:
# -封装——确保对象中的数据安全
# -继承——确保对象的可扩展性,OCP原则
# -多态——确保程序的灵活性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值