Python之面向对象多态

Python之面向对象多态

   多态与多态性:

    多态:

      多态是指一类事物有多种形态,一个抽象类有多个子类,因而多态的概念依赖于继承。

      1、序列类型有多种形态:字符串、列表、元组。

      2、动物有多种形态:People、Dog、Pig。

 

#多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)
class Animal:
    def run(self):
        raise AttributeError('子类必须实现这个方法')


class People(Animal):
    def run(self):
        print('人正在走')

class Pig(Animal):
    def run(self):
        print('pig is walking')


class Dog(Animal):
    def run(self):
        print('dog is running')

peo1=People()
pig1=Pig()
d1=Dog()

peo1.run()
pig1.run()
d1.run()

 

  多态性:

    一种调用方式,不同的执行结果。

    多态性依赖于继承、多态性定义统一的接口。 

 

#多态性:一种调用方式,不同的执行效果(多态性)
def func(obj):
    obj.run()

func(peo1)
func(pig1)
func(d1)


# peo1.run()
# pig1.run()


# 多态性依赖于:
#     1.继承
#     2.定义接口
##多态性:定义统一的接口,
def func(obj): #obj这个参数没有类型限制,可以传入不同类型的值
    obj.run() #调用的逻辑都一样,执行的结果却不一样。由继承决定。


func(peo1)
func(pig1)

func(d1)

 

posted @ 2018-06-25 14:52  王先生是胖子  阅读(182)  评论(0编辑  收藏  举报