python 面向对象 多态 封装

Posted clara51

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 面向对象 多态 封装相关的知识,希望对你有一定的参考价值。

多态

什么是多态?

一个类表现出的多种状态,通过继承来实现

例如Animal类表现出了Dog,Cat两种形态

class Animal:pass
class Dog(Animal):pass
class Cat(Animal):pass

wc = Dog()

 

def func(name,age):
    print(name,age)
func(1,2)
class Payment:pass
class ApplePay(Payment):
    def pay(self):pass
class Alipay(Payment):
    def pay(self):pass

def pay(obj,money):    #在python中无需指定传输数据类型,随意传任意类型
    obj.pay()

app = ApplePay()
print(type(app))
pay(app,123)

多态在java中的表现:

在一个函数中需要给参数指定数据类型,如果这个地方可以接收两个以上类型的参数,那么这些类型应该有一个父类,这个父类是所有子类对象的类型。

def func(Cat mao):pass
def func(Dog gou):pass
def func(Animal gou|mao):pass

多态在python中的表现:

函数的参数不需要指定数据类型,所以我们也不需要通过继承的形式来统一一组类的类型,换句话说 所有的对象其实都是object类型,所以在python当中其实处处是多态

 

鸭子类型:

所有的对象都是鸭子类型,不是明确的通过继承实现的多态,而是通过一个模糊的概念来判断这个函数能不能接受这个类型的参数

 

 

以上是关于python 面向对象 多态 封装的主要内容,如果未能解决你的问题,请参考以下文章

python面向对象(封装继承多态)+ 面向对象小栗子

Python3-2020-测试开发-20- 面向对象之封装,继承,多态

继承 多态 封装 Python面向对象的三大特性

Python面向对象之类的封装继承与多态

Python-面向对象(组合封装与多态)

Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)