(python)面向对象三大特性之多态

6人阅读 评论(0) 收藏 举报

1、什么是多态:

    它是指同一种事物的多种形态,在程序中用继承可以表现出多态。

    多态性:可以在不考虑具体类的情况下,直接参考基类的标准来使用对象。

    但在python中推崇鸭子类型。它不但解藕合,且能建立标准。

2、为什么要用多态:

    用基类创建一套统一的规则,强制子类去遵行(用抽象类去实现)这样可以不用考虑具体类型的前提下而直接使用对象下的方法。

3、如何使用:

来看下面的一段代码。

class Animal:
    def run(self):
        pass

    def bark(self):
        pass
    
class Cat(Animal):
    def jiao(self):
        print('喵喵喵')

class Dog(Animal):
    def speak(self):
        print('汪汪汪')

class Pig(Animal):
    def han(self):
        print('哼哼哼')

c=Cat()
d=Dog()
p=Pig()
#调用不同具体动物叫的时候就用不同实现方法。
c.jiao()
d.speak()
p.han()

如上代码在调用不同具体动物叫的时候就用不同的调用方法。这样子不态好,很乱,没有规范。我们就要用多态来给它弄个规,凡是动物叫,就都用bark()来调用。这样就很清楚明了。

import abc
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractclassmethod
    def bark(self):
        pass
    @abc.abstractclassmethod
    def drink(self):
        pass
class Cat(Animal):
    def drink(self):
        print('cat is dering')
    def bark(self):
        print('cat is barking')

class Dog(Animal):
    def drink(self):
        print('dog is dering')
    def bark(self):
        print('dog is barking')
c=Cat()
d=Dog()

c.bark()
d.bark()


查看评论

python面向对象

-
  • 1970年01月01日 08:00

面向对象三大特性之一 多态

首先,我们看一下百科的解释:多态(Polymorphism)按字面的意思就是"多种状态"。在面向对象语言中,接口的多种不同的实现方式即为多态。通俗的讲,就是同一个东西表现出多种状态,在面向对象的描述中...
  • lizhidefengzi
  • lizhidefengzi
  • 2017-03-11 01:28:23
  • 647

面向对象编程三大特性------封装、继承、多态

本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-06-07 11:41:12
  • 13932

Java-面向对象编程-三大特性之多态

我们前面已经介绍了面向对象编程的三大特性之二,今天就介绍最后一个特性-多态。 什么叫多态?从字面上理解就是多种形态,即对同一个客体,可以有多种不同的形式。就好像糖一样,有多种口味,你想吃什么口味的就...
  • dengminghli
  • dengminghli
  • 2017-02-01 18:14:48
  • 5059

Java 面向对象三大特性之多态

  • 2017年05月20日 23:50
  • 6KB
  • 下载

JavaScript三大特性,继承封装多态

javascript的相关特性 一.、面向对象的三大特性:继承封装多态 作为基于对象的语言,js自然可以实现OOP语言的大部分特征。 继承:js没有类的概念,自然不能像php那样封装class然...
  • nappingCat_Wang
  • nappingCat_Wang
  • 2016-12-01 15:08:10
  • 813

面向对象的三大特点(封装,继承,多态)

面向对象的三大特点(封装,继承,多态)封装的意思是说对象数据和操作该数据的指令都是对象自身的一部分,封装能够实现尽可能对外部世界隐藏数据。譬如,当你在某个模块中定义某个变量、常量、函数前声明了关键字P...
  • lcwdzl
  • lcwdzl
  • 2007-07-15 16:27:00
  • 4816

c++面向对象三大特征封装、继承和多态知识总结

面向对象三大特征:封装,继承,多态; 一、封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现;作用是便于分工和分模块,防止不必要的扩展; 二、继承:就是一种传承,可以把...
  • uestclr
  • uestclr
  • 2016-06-05 18:23:17
  • 3461

java面向对象的三大特性----封装、继承、多态

1、封装 所谓封装,就是把实现细节隐藏起来,把该公开的公开,该私有的私有;简单点说,对于一个类,其中包含有属性和方法,其中属性对外部来说,可有可无,此时就可有把属性设为private,提供公开的get...
  • qq_17099979
  • qq_17099979
  • 2016-10-16 14:26:41
  • 176

python面向对象的3个特点

python 面向对象 封装 多态 继承
  • sxingming
  • sxingming
  • 2016-04-30 08:42:19
  • 1602
    个人资料
    等级:
    访问量: 125
    积分: 163
    排名: 107万+
    文章分类
    文章存档
    最新评论