python 面向对象 多态 封装

2021-07-10 18:07

阅读:337

标签:func   div   函数的参数   继承   面向   两种   pass   对象   数据   

多态

什么是多态?

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

例如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 面向对象 多态 封装

标签:func   div   函数的参数   继承   面向   两种   pass   对象   数据   

原文地址:https://www.cnblogs.com/Clara51/p/9555107.html


评论


亲,登录后才可以留言!