python类的多态、多态性

多态:多态指的是一类事物有多种形态

多态性:

class Animal:

  def run(self):

    raise AtrributeError("子类必须实现这种方法")

class Person(Animal):

  pass

p = Person()

p.run()

通过父类主动抛出一个异常,告诉你子类中必须自己要写这个方法

改子类如下

class Person(Animal):

  def run(self):

    print("人跑")

再定义几个子类

def Dog(Animal):

  def run(self):

    print("狗跑")

def Pig(Animal):

  def run(self):

    print("猪跑")

person = Person()

dog = Dog()

pig = Pig()

person.run()

dog.run()

pig.run()

上面这就是多态,同属一个父类,但是他们在run这个方法上表现出不能的形态,这就是多态。

那什么是多态性呢?

还是举电脑组装的例子

电脑主机生产商定义了电脑这个类

class Computer():

  def usb_run(self):

    raise AtrributeError("USB设备自己要开发run方法")

def usb_insert(obj):

  obj.run()

class KeyBoard(Computer):

  def usb_run(self):

    print("键盘插入了")

class Mouse(Computer):

  def usb_run(self):

    print("鼠标插入了")

k = KeyBoard()

m = Mouse()

usb_insert(k)

usb_insert(m)

简单理解就是定义了一个函数,函数里执行了多态的共同方法,

但是并不区分是哪个对象传送过来的,具体对象需要通过向函数传递参数实现,这种实现方法就是多态性。

    

原文地址:https://www.cnblogs.com/laofang/p/12076802.html

时间: 2024-11-08 10:39:23

python类的多态、多态性的相关文章

Python类(四)-多态

多态即一个接口,多种实现 按照平常直接调用 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(object): def __init__(self,name): self.name = name class Student(Person): def talk(self): print('%s is studying'%self.name) class Teacher(Person): def talk(sel

8.python之面相对象part.6(python类中的多态与多态性)

一.什么是多态性? 多态性依赖于类的继承特性和派生特性,多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数. 为了更好的理解,接下来拿len()函数来举个例子: len()函数的功能是用来求一个序列的长度,那么len()这个函数是如何获取到序列的长度的呢? len()函数就是通过执行对象的__len__方法来获取到一个序列的长度. python中常见的一些基本数据类型, 比如字符串,字典,列表,元组 都具有名为__len__方法,所以len()函数无序知道

python基础之多态与多态性

很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗. 一 多态: 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 序列类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal): #动物的形

python面向对象:多态与多态性

多态 多态指的是一类事物有多种形态,比如 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal): #动物的形态之一:人 def talk(self): print('say hello') class Dog(Animal): #动物的形态之二:狗 def talk(self): pr

类的多态与多态性

目录 什么是多态 为什么用多态 多态的应用 数据类型中多态的应用 鸭子类型 什么是多态 多态指的是同一种事物的多种形态 水-->冰.水蒸气.液态水 动物-->人.狗.猪 为什么用多态 多态性: 继承同一个类的多个子类中有相同的方法名 那么子类产生的对象就可以不用考虑具体的类型而直接调用功能 多态的应用 Animal()-->强调:父类是用来指定标准的,不能被实例化,也就是说父类中被@abc.abstractmethod装饰的方法,子类必须也要有,如果没有的话则会报错,这个拥有被装饰的方法

类的多态和多态性

类的多态和多态性 很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗. 一.多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 序列数据类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪 1.1 动物的多种形态 # 动物有多种形态:人类.猪.狗 class Animal: def run(self): # 子类约定俗称的必须实现这个方法 raise AttributeError('子类必须实现这个方法') class

python类的继承和多态

python类的继承和多态 现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个特征:封装.继承.多态. 1.封装:类封装了一些方法,可通过一定的规则约定方法进行访问权限. C++中的成员变量有public.private.ptotected. 在python中,默认的成员变量都是public的,如果成员变量前面是加两个下划线,表示该成员变量是私有的

Python 【类的多态】

一.多态 #类的多态 class Animal(object): #Animal类继承object def __init__(self,color): self.color = color def eat(self): print("动物在吃!") def run(self): print("动物在跑") class Cat(Animal): #Cat继承Aninal 继承[属性和方法] def eat(self): #方法重名 print("猫仔!&qu

python 类知识点总结

python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象中提取对象共同的特征和属性,构成一个类. 对象:具有数据属性和函数属性的集合体 实例化:由类生成一个对象的方法,就是实例化 实例:类的实例化就会产生一个实例(对象) 类: 对象就是类的抽象 类实例成对象的过程就是实例化 实例就是对象 2.面向对象的三大特性是什么? 继承,多态,封装 3.什么是方法?