面向对象——多态(代码片段)

ykgo ykgo     2022-12-16     481

关键词:

多态

1.多态和多态性

多态:指同一种事物的多种形态。比如水,可以是水蒸汽、雪、雨等多种形态。
多态性:指的是可以在不考虑对象的类型的情况下而直接使用对象。

(1).例子一

s1 = "hello "
s2 = "world"

d1 = 500
d2 = 20

print(s1 + s2) # hello world
print(d1 + d2) # 520

站在"+"的角度去看,它并不关心左右两边操作数的类型。所以它是多态的一种表现形式,其实我们见到的有很多。

(2).例子二

# 多态:同一类事物的多种形态
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):
        print(say wangwang)


class Pig(Animal):  # 动物的形态之三:猪
    def talk(self):
        print(say aoao)
# 多态性:指的是可以在不考虑对象的类型的情况下而直接使用对象
peo1 = People()
dog1 = Dog()
pig1 = Pig()

# 不用关心对象的类型
# peo1.talk()
# dog1.talk()
# pig1.talk()

# 实现一种接口
def func(animal):
    animal.talk()

# 不用关心参数的类型
func(peo1)
func(pig1)
func(dog1)

2. 鸭子类型

解释:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”,

我们并不关心对象是什么类型,到底是不是鸭子,只关心行为。python崇尚的就是它。

#序列类型:列表list,元组tuple,字符串str

l=list([1,2,3])
t=tuple((a,b,c))
s=str(hello)

# 不关注类型,只关注它是如何实现行为的
# print(l.__len__())
# print(t.__len__())
# print(s.__len__())

# def len(obj):
#     return obj.__len__()

# 不关注对象的类型,只要它依据 ‘鸭子类型‘ 像序列,那它就是序列。所以len()的参数并不关心其类型
print(len(l)) # 3
print(len(t)) # 3
print(len(s)) # 5

 


面向对象——多态(代码片段)

多态1.多态和多态性多态:指同一种事物的多种形态。比如水,可以是水蒸汽、雪、雨等多种形态。多态性:指的是可以在不考虑对象的类型的情况下而直接使用对象。(1).例子一s1="hello"s2="world"d1=500d2=20print(s1+s2)#helloworldprint(d1+d2)... 查看详情

面向对象多态(代码片段)

多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类... 查看详情

面向对象之多态(代码片段)

多态的概念多态指的是一类事物的多种形态,例如水有固态、液态、气态,动物有人、狗、猪,这是动物的不同形态。可能你会领悟,人狗猪不是继承于动物类吗?没错,多态在程序中的表现形式就是依赖于继承多态性那多态到... 查看详情

面向对象-通过代码分析多态(代码片段)

多态是面向对象的三大特性之一,我们今天重点来聊聊多态,并且将代码与多态的概念进行对应和映射。“多态”的概念:多态是指为不同数据类型的实体提供统一的接口,也就是同一操作作用于不同的对象,... 查看详情

面向对象---多态(代码片段)

一、什么是多态?  同样的物质,在不同的条件下,所呈现出来状态是不同的。//类名对象名=new类名();Dogd=newDog();Penguinp=newPenguin(); 二、使用  父类的引用指向子类的实例    语法:1、父类名&n... 查看详情

java面向对象三大特征之继承和多态(代码片段)

...转型多态代码案例总结前言  上一篇博客我们介绍了Java面向对象思想以及三大特征之一的封装。本文将介绍面向对象三大特征的剩下两个特征——继承和多态,我个人认为继承和多态是三个特征中比较重要且理解起来稍有... 查看详情

面向对象之多态与多态性(代码片段)

一、多态  1、定义:指的是一类事物的多种形态,如水有液体、气体和固体三种形态, 动物有人、猫、狗等存在形态。  2、示例:#!/usr/bin/envpython3#-*-coding:utf-8-*-importabcclassAnimal(metaclass=abc.ABCMeta):#同一类事物@abc.abstract... 查看详情

5_面向对象-中之面向对象的特征三:多态性(代码片段)

1.多态性的理解:可以理解为一个事物的多种形态。2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)举例:Personp=newMan();Objectobj=newDate();3.多态性的使用:虚拟方法调用  >有了对象... 查看详情

java面向对象之多态(代码片段)

...态的实现3.小结 1.多态的含义       多态,是Java面向对象的三大特性之一,使用之地特别广泛。那么什么是多态呢?多态是同一个行为具有多个不同表现形式或形态的能力。比如炒菜这个行为在不同厨师身上会产... 查看详情

java面向对象之多态(代码片段)

...态的实现3.小结 1.多态的含义       多态,是Java面向对象的三大特性之一,使用之地特别广泛。那么什么是多态呢?多态是同一个行为具有多个不同表现形式或形态的能力。比如炒菜这个行为在不同厨师身上会产... 查看详情

面向对象的三大特性之多态(代码片段)

#面向对象的三大特性之多态#多态由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同#多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类#多态表明了动态(运行时)绑定... 查看详情

java基础面向对象三个特征:多态(代码片段)

一、多态的概述  多态:一个对象拥有多种形态    eg:小明是一个学生(学生形态),同时也是一个人(人类形态)  多态的格式与使用:父类引用指向子类对象    格式:父类名称对象名=new子类名称()    ... 查看详情

前端javascript设计模式前奏--面向对象-封装继承多态(代码片段)

JavaScript面向对象如图所示:1.什么是面向对象1.面向对象的概念2.面向对象的三要素:继承/封装/多态⭐️3.JS的应用举例4.面相对象的意义---数据结构化2.面向对象的概念:类+对象1.面向对象的概念:类+对象1.类(模板)/对象(实例)1.... 查看详情

python面向对象之多态(代码片段)

多态第一阶段:判断一个变量是否是某个类型可以用isinstance()判断classAnimal(object):defrun(self):print("Animalisrunning")classDog(Animal):defrun(self):print("Dogisrunning")classCat(Animal):defrun(self):print 查看详情

面向对象三大特性之多态与多态性(代码片段)

一、多态‘‘‘多态:同一事物的多种形态‘‘‘#文件的多种形态:classFile:defclick(self):passclassTextFile(File):defread(self):print(‘文本文件双击可以查看内容‘)classExeFile(File):defexe(self):print(‘可执行文件双击可以执行‘)file1=TextFile()file2... 查看详情

java中面向对象三大特性之——多态(代码片段)

多态的概述: 多态是继封装、继承之后,面向对象的第三大特性。生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的... 查看详情

面向对象三大特性(代码片段)

面向对象三大特性1.面向对象的三大特性:继承,封装,多态封装:将一堆代码或者数据等放到一个空间中,并且可以使用多态:同一个对象,多种形态.(python默认支持多态)封装:根据职责将属性和方法封装到一个抽象的类中继承:实现代码... 查看详情

java面试题详解一:面向对象三大特性(代码片段)

一,多态:1.面向对象四大基本特性:抽象,封装,继承,多态抽象,封装,继承是多态的基础。多态是抽象,封装,继承的表现。2.什么是多态不同类的对象对同一消息作出不同的响应叫做多态3.多态的作用简单来说:解藕。详... 查看详情