面向对象三大特性之多态与多态性
Posted lichunke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象三大特性之多态与多态性相关的知识,希望对你有一定的参考价值。
一、多态
‘‘‘ 多态: 同一事物的多种形态 ‘‘‘ # 文件的多种形态: class File: def click(self): pass class TextFile(File): def read(self): print(‘文本文件双击可以查看内容‘) class ExeFile(File): def exe(self): print(‘可执行文件双击可以执行‘) file1 = TextFile() file2 = ExeFile() file1.read() file2.exe() # 上面的代码,其实子类压根没用到父类的功能,多态应用如下 import abc class File(metaclass=abc.ABCMeta): # 同一类事物:文件 @abc.abstractclassmethod def click(self): pass class 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 abc class File(metaclass=abc.ABCMeta): # 同一类事物:文件 @abc.abstractclassmethod def click(self): pass class TextFile(File): def click(self): print(‘文本文件双击可以查看内容‘) class ExeFile(File): def click(self): print(‘可执行文件双击可以执行‘) file1 = TextFile() file2 = ExeFile() file1.click() file2.click()
二、多态性
以上是关于面向对象三大特性之多态与多态性的主要内容,如果未能解决你的问题,请参考以下文章