zoukankan      html  css  js  c++  java
  • python面向对象之多态

    实现多态的步骤:

    1、定义一个父类(Base),实现某个方法(比如:run)

    2、定义多个子类,在子类中重写父类的方法(run),每个子类run方法实现不同的功能

    3、假设我们定义了一个函数,需要一个Base类型的对象的参数,那么调用函数的时候,传入Base类不同的子类对象,那么这个函数会执行不同的功能,这就是多态的体现。

    class Animal(object):
        '''定义一个Animal类'''
        def run(self):
            print("动物都会跑")
    
    class Cat(Animal):
        '''定义一个cat类,继承Animal'''
        def run(self):
            print("猫会跑")
    
    class Dog(Animal):
        '''定义一个Dog类,继承Animal'''
        def run(self):
            print("狗会跑")
    
    class Test():
        def run(self):
            print("Test类也有run方法")
    
    def func(obj):
        obj.run()
    
    #多态的意义是,根据不同的对象做不同的事情
    a=Animal()
    func(a)
    c=Cat()
    func(c)
    d=Dog()
    func(d)
    
    #---python的多态实际是一个伪多态,因为他不能像java那样定义数据类型,所以只有传入有run方法的类的对象,都能运行run方法
    t=Test()
    func(t)

    运行结果:

    动物都会跑
    猫会跑
    狗会跑
    Test类也有run方法

    python的多态实际是一个伪多态,因为他不能像java那样定义数据类型,所以只有传入有run方法的类的对象,都能运行run方法

  • 相关阅读:
    进度条
    打开文件的功能代码 JFileChooser
    我对JAVA的初认知
    集合之五:Set接口
    集合之四:List接口
    集合之三:泛型
    Maven web项目(简单的表单提交) 搭建(eclipse)
    集合之二:迭代器
    集合之一:集合概述
    java的函数
  • 原文地址:https://www.cnblogs.com/crystal1126/p/13576865.html
Copyright © 2011-2022 走看看