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基础:面向对象-继承和多态的主要内容,如果未能解决你的问题,请参考以下文章

8.python面向对象基础(封装,继承,多态)

Python基础(二十四):面向对象核心知识

Python基础(二十四):面向对象核心知识

Python 基础之面向对象类的继承与多态

python的面向对象的特性(继承封装多态)

Python基础(17)_面向对象程序设计(抽象类继承原理封装多态,绑定方法)