Python基础:面向对象-继承和多态
Posted 阳光倾林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础:面向对象-继承和多态相关的知识,希望对你有一定的参考价值。
一、继承
Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性的方法。
作用:可以减少代码重复,提升代码复用率。
简单示例如下:
#父类A
class Animal(object):
s = \'aaa\'
def __init__(self, name):
self.name = name
def eat(self, s):
print(f\'吃s\')
#子类B
class Cat(Animal):
pass
cat = Cat(\'加菲猫\')
cat.eat(\'小鱼干\')
在Python中,所有类默认继承object类,object类是顶级类或基类;其他子类叫做派生类。
子类重写父类的同名属性和方法:
class Dog(Animal): # 父类中虽然只定义了初始化的属性只有name,但是我自己要在这个属性的基础上进行扩展 def __init__(self,name,color): # 要先调用父类的初始化方法,便于继承父类的东西 super().__init__(name) self.color = color # 重写父类的eat方法 def eat(self,s,n): print(f\'吃了n斤s\') def sleep(self): print(f\'self.name正在睡觉\')
二、多态
简单地说,多态就是“具有多种形态”,它指的是:即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象中的方法。
简单示例:
class Animal(object): def eat(self): print(\'动物要吃东西\') class Dog(Animal): def eat(self): print(\'狗喜欢吃骨头\') class Person(object): def eat(self): print(\'人吃五谷杂粮\') def fun(object): object.eat()
fun(Animal()) fun(Dog()) fun(Person()
以上是关于Python基础:面向对象-继承和多态的主要内容,如果未能解决你的问题,请参考以下文章