抽象类

抽象类

  • 抽象方法:没有具体内容的方法称为抽象方法
  • 抽象方法的吧主要意义是规范了子类的行为和接口
  • 抽象类的使用需要借助abc模块
    import abc
  • 抽象类:包含抽象方法的类叫抽象类,同城称为ABC类
  • 抽象类的使用
    • 抽象类可以包含抽象方法,也可以包含具体方法
    • 抽象类中可以有方法也可以有属性
    • 抽象类不允许直接实例化
    • 必须继承才可以使用,且继承的子类必须实现所有继承来的抽象方法
    • 假定子类没有实现所有继承的抽象方法,则子类也不能实例化
    • 抽象类的主要作用是设定类的标准,以便于开发的时候具有统一的规范
# 抽象

class Animal():
    
    def sayHello(self):
        pass
    
class Dog(Animal):
    def sayHello(self):
        print("问一下别人")

class Person(Animal):
    
    def sayHello(self):
        print("Kiss me")
        
d = Dog()
d.sayHello()

p = Person()
p.sayHello()
问一下别人
Kiss me
# 抽象类的实现
import abc

# 声明一个类并且指定当前类的元类
class Human(metaclass = abc.ABCMeta):
    
    # 定义一个抽象的方法
    @abc.abstractmethod
    def smoking(self):
        pass
    
    # 定义类抽象方法
    @abc.abstractclassmethod
    def drink():
        pass
    
    # 定义静态抽象方法
    @abc.abstractstaticmethod
    def play():
        pass
    
    def sleep(self):
        print("Sleeping......")

你可能感兴趣的:(python高级,抽象类)