Python--day25--面向对象之多态
2024-10-08 04:35:51
多态(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):
print('say wangwang') class Pig(Animal): #动物的形态之三:猪
def talk(self):
print('say aoao')
文件有多种形态:文本文件,可执行文件
import abc
class File(metaclass=abc.ABCMeta): #同一类事物:文件
@abc.abstractmethod
def click(self):
pass class Text(File): #文件的形态之一:文本文件
def click(self):
print('open file') class ExeFile(File): #文件的形态之二:可执行文件
def click(self):
print('execute file')
多态的表现形式:
鸭子类型:(Python中有鸭子类型,而其他语言如Java没有,所以Python不重尚通过继承对代码进行规范,Python重尚鸭子类型,就像list和tuple这两个这么相似的数据类型都没有用继承---可作为面试时面试官叫你解释一下设计模式接口类的回答)
例子的代码中List和Tuple就是鸭子类型:
ps:python不重尚多态
最新文章
- JavaScript函数表达式
- 如何安装mysql服务
- HTML5和CSS3基础教程(第8版)-读书笔记(3)
- POJ 3416 Crossing --离线+树状数组
- Unix网络编程(迭代服务器)
- ios中javascript直接调用oc代码而非通过改变url回调方式(转)
- css垂直水平居中方案
- CAS单点登录配置[1]:准备工作
- Android中自定义属性的使用
- 2017-2-17 c#基础学习 (控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印)
- PHP实现邮件的自动发送
- 2018牛客网暑假ACM多校训练赛(第八场)H Playing games 博弈 FWT
- DataGridView 使用精华
- 关于error:Cannot assign to 'self' outside of a method in the init family
- 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0的解决方案
- c++ 将容量设置为容器的长度(shrink_to_fit)
- float数据在内存中存储方式
- 一个通用的JavaScript分页
- 139.00.007 Git学习-Cheat Sheet
- Centos7下lamp环境搭建的小笔记
热门文章
- .net core/.net 使用 CommandLineParser 来标准化地解析命令行
- VisualVM介绍使用
- mysql各个引擎区别
- MaxCompute推出面向开发者的专属版本,普惠大数据开发者
- noip考前模板复习
- Bootstrap —— tab切换
- D3D10/11中的遮挡查询的使用
- CSS user-select文本是否可复制
- 笔记:OSAL st 宏学习 do { x } while (__LINE__ == -1)
- day39-Spring 13-Spring的JDBC模板:默认连接池的配置