zoukankan      html  css  js  c++  java
  • 面向对象——抽象类

    抽象类

    • 抽取多个类相似的部分
    • 通过抽象类把子类的规范定义好了,把所有方法都规范起来,降低使用者的使用复杂度
    • 本质依然是类,依然可以被继承
    • 抽象类只能被继承,不能被实例化
    •  1 import abc #利用abc模块实现抽象类
       2 class Allflie(metaclass=abc.ABCMeta):
       3     all_type = 'file'
       4     @abc.abstractmethod #定义抽象方法,无需实现功能
       5     def read(self):  #规定子类必须定义读功能
       6         pass
       7     @abc.abstractmethod
       8     def write(self):#规定子类必须定义写功能
       9         pass
      10 # class Txt(Allflie):
      11 #     pass
      12 # t1 = Txt()  #报错,子类没有定义抽象方法
      13 class Txt(Allflie):#子类继承抽象类,但是必须定义read和write方法
      14     def read(self):
      15         print('文本数据的读取方法')
      16     def write(self):
      17         print('文本数据的读取方法')
      18     pass
      19 class Sata(Allflie): #子类继承抽象类,但是必须定义read和write方法
      20     def read(self):
      21         print('硬盘数据的读取方法')
      22     def write(self):
      23         print('硬盘数据的读取方法')
      24 
      25 class Process(Allflie): #子类继承抽象类,但是必须定义read和write方法
      26     def read(self):
      27         print('进程数据的读取方法')
      28     def write(self):
      29         print('进程数据的读取方法')
      30 
      31 wenbenwenjian=Txt()
      32 yingpanwenjian=Sata()
      33 jinchengwenjian=Process()
      34 #这样大家都是被归一化了,也就是一切皆文件的思想
      35 wenbenwenjian.read()#文本数据的读取方法
      36 yingpanwenjian.write()#硬盘数据的读取方法
      37 jinchengwenjian.read()#进程数据的读取方法
      38 
      39 print(wenbenwenjian.all_type)#file
      40 print(yingpanwenjian.all_type)#file
      41 print(jinchengwenjian.all_type)#file
      View Code
  • 相关阅读:
    ORACLE SQL性能优化系列 (十一)
    ORACLE SQL性能优化系列 (七)
    ORACLE SQL性能优化系列 (十三)
    Oracle绑定变量
    ORACLE SQL性能优化系列 (九)
    C#中&与&&的区别
    简单代码生成器原理剖析
    C#线程系列讲座(1):BeginInvoke和EndInvoke方法
    ClearCanvas DICOM 开发系列 一
    C# winform 获取当前路径
  • 原文地址:https://www.cnblogs.com/GraceZ/p/8074453.html
Copyright © 2011-2022 走看看