# 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原则
# -多态——确保程序的灵活性
python(12)——继承、多重继承、多态、面向对象的三大特征
最新推荐文章于 2024-10-10 18:18:43 发布
本文介绍了面向对象编程中的四个关键概念:继承使得子类继承父类属性和方法,方法重写和super()的使用,多重继承与避免复杂性,以及多态和封装的重要性。通过实例展示了如何在Python中实现这些特性。
摘要由CSDN通过智能技术生成