美文网首页
面向对象——多态

面向对象——多态

作者: 一念之间789 | 来源:发表于2017-07-28 09:47 被阅读0次

多态:程序在运行的过程中,根据执行条件的不同,动态执行不同的操作代码的过程称为程序运行时多态。

多态操作,通常情况和继承相关联

class Person:
#name姓名age年龄health健康值【<50极度虚弱,<70亚健康,<85健康,<100强壮)
def init(self,name,age,health):
self.name = name
self.age = age
self.health = health

#康复的方法
def recure(self):
    print("[%s]康复了,当前健康值%s"%(self.name,self.health))

class Man(Person):
def init(self,name,age,health):
Person.init(self,name,age,health)

def recure(self):
    print("%s啊哈哈,终于好了···"%self.name)

class Woman(Person):
def init(self,name,age,health):
Person.init(self,name,age,health)

def recure(self):
    print("[%s]死鬼,我康复了·····"%self.name)

class Animal:
def init(self,name,age,health):
self.name=name
self.age=age
self.health=health

def reaure(self):
    print("%s呜呜呜,本大王终于好了"%self.name)

class Hospital:
def init(self):
self.name = "人民医院"

def care(self,person):
    #类型判断,判断变量是否为Person类型
    if isinstance(person,Person):
        if person.health > 0and person.health <=50:
            print("手术治疗········")
            person.health += 30
            person.recure()
        elif person.health >50 and person.health <=70:
            print("小事,输个液就好···")
            person.health +=15
            person.recure()
        else:
            print("身体健康,不用住院")
    else:
        print("你不在这里治疗,出门右转一直向前,你会找到高级医院(兽医院)")

hospital = Hospital()

生病的人

old_wang = Person("老王",55,35)
mrs_li= Woman("李小姐",26,56)
mr_li = Man("李先生",28,75)

hospital.care(old_wang)
hospital.care(mrs_li)
hospital.care(mr_li)

a = Animal("tom",5,25)
hospital.care(a)

Paste_Image.png
程序在运行的过程中,根据传递的参数的不同,执行不同的函数或者操作不同的代码,这种在运行过程中才确定调用的方式成为运行时多态
当治疗方法在执行的过程中,根据传递的数据的不同,在执行时调用不同的处理代码或者处理函数,来完成治疗效果,动态处理(多态)
人的类型 VS 动物类型,不是多态~而是通过if条件判断执行代码人/男人/女人,执行的代码一致【运行过程中,才确定调用谁的方法】

相关文章

  • Java基础day08笔记:多态|多态中成员的特点|多态的应用示

    01-面向对象(多态-概念) 接下来说一下面向对象的第三个特征:多态。 何为多态呢? 其实...

  • 宅男知识大补丸 学多态 认包包

    java零基础入门-面向对象篇(十) 多态 面向对象的三大特征,封装,继承我们讲完了,这次来讲多态。 多态就是指一...

  • OC面向对象—多态

    OC面向对象—多态 OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • Kotlin入门学习(二)

    新的篇章 面向对象 面向对象-封装 面向对象-继承 面向对象-抽象类和多态 接口 委托和代理 by关键字 委托...

  • 对象和面向对象的介绍

    对象分为 面向对象和基于对象: 面向对象:面向对象定义: 可以创建自定义类型、很好的支持继承和多态。面向对象的语言...

  • C#之面向对象基础篇

    面向对象编程:简称OOP 面试题:什么是面向对象? 答:封装,继承,多态即为面向对象 面相对象的方法: 面向对象的...

  • 面向对象

    面向对象有3大特性:封装、继承、多态1、介绍面向对象编程 面向对象编程(Object Oriented Progr...

  • python 高级 面向对象编程(OOP)

    面向对象有3大特性:封装、继承、多态 1、介绍面向对象编程 面向对象编程(Object Oriented Pro...

  • 再议封装、继承、多态

    封装 面向过程和面向对象区别 继承 多态 运行结果:

网友评论

      本文标题:面向对象——多态

      本文链接:https://www.haomeiwen.com/subject/hjrxlxtx.html