码迷,mamicode.com
首页 > 其他好文 > 详细

多态与多态性

时间:2018-08-21 19:05:16      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:如何   分享图片   read   多态性   子类   div   opened   标准   组件   

1. 什么是多态

    多态指的是同一种/类事物的不同形态

2.为何要用多态性

  1 增加了程序的灵活性

  2 增加了程序的可扩张性

多态性:分为静态多态性和动态多态性

    多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象

    多态性的精髓:统一

3. 如何用多态

class Animal:
    def speak(self):
        pass
class People(Animal):
    def shuo(self):
        print(say hello)
class Dog(Animal):
    def jiao(self):
        print(汪汪汪)
class Pig(Animal):
    def chang(self):
        print(哼哼哼)
obj1=People()
obj2=Dog()
obj3=Pig()
# obj1.speak()
# obj2.speak()
# obj3.speak()
def speak(animal):
    animal.speak()
speak(obj1)
speak(obj2)
speak(obj3)

python 崇尚鸭子类型

逗比时刻:

  Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。

例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法

技术分享图片
class Disk:
    def read(self):
        print(Disk read)

    def write(self):
        print(Disk write)


class Memory:
    def read(self):
        print(Mem read)

    def write(self):
        print(Mem write)
obj1=Disk()
obj2=Memory()

obj1.read()
obj2.read()
View Code

 

多态与多态性

标签:如何   分享图片   read   多态性   子类   div   opened   标准   组件   

原文地址:https://www.cnblogs.com/xuecaichang/p/9513183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!