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()
复制代码

 

posted @   阳光倾林  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-03-20 性能监控之中间件监控
2022-03-20 【nginx】Nginx安装
2022-03-20 【redis】Redis安装
点击右上角即可分享
微信分享提示