博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象三大特性之多态与多态性
阅读量:5225 次
发布时间:2019-06-14

本文共 1106 字,大约阅读时间需要 3 分钟。

一、多态

'''多态:    同一事物的多种形态'''# 文件的多种形态:class File:    def click(self):        passclass TextFile(File):    def read(self):        print('文本文件双击可以查看内容')class ExeFile(File):    def exe(self):        print('可执行文件双击可以执行')file1 = TextFile()file2 = ExeFile()file1.read()file2.exe()# 上面的代码,其实子类压根没用到父类的功能,多态应用如下import abcclass File(metaclass=abc.ABCMeta):  # 同一类事物:文件    @abc.abstractclassmethod    def click(self):        passclass TextFile(File):    def read(self):        print('文本文件双击可以查看内容')class ExeFile(File):    def exe(self):        print('可执行文件双击可以执行')file1 = TextFile()file2 = ExeFile()'''使用abc模块,指定metaclass=ab.ABCMeta,如果子类没有用到父类的功能则会报错    TypeError: Can't instantiate abstract class TextFile with abstract methods click'''# 修改如下:import abcclass File(metaclass=abc.ABCMeta):  # 同一类事物:文件    @abc.abstractclassmethod    def click(self):        passclass TextFile(File):    def click(self):        print('文本文件双击可以查看内容')class ExeFile(File):    def click(self):        print('可执行文件双击可以执行')file1 = TextFile()file2 = ExeFile()file1.click()file2.click()

二、多态性

 

转载于:https://www.cnblogs.com/lichunke/p/9531241.html

你可能感兴趣的文章
BZOJ 1001--[BeiJing2006]狼抓兔子(最短路&对偶图)
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
js += 含义(小知识)
查看>>
B2321 [BeiJing2011集训]星器 数学&&物理
查看>>
201571030319 四则运算
查看>>
RestTemplate 调用本地服务 connection refused
查看>>
.NET方向高级开发人员面试时应该事先考虑的问题
查看>>
台达PLC modbus 不支持04功能码
查看>>