OOP-抽象类
抽象方法:
- 了解抽象类之前首先了解抽象方法
- 抽象方法只定义方法而不实现内容
- 有些时候在父类实现可能在子类不ok,比如每个子类的功能可能不尽相同
- 抽象方法主要规范了子类的行为和接口
class animel(): #创建抽象类 由子类实现
def say_hello(self):
pass # 每种动物打招呼的方式可能不同
class dog(animel): # 狗类
def say_hello(self): # 实现打招呼
print('闻一闻')
class people(animel): # 人类
def say_hello(self): # 实现打招呼
print('握手')
抽象类
- 就是包含抽象方法的类
- 抽象类可以包含抽象方法 也可以包含具体方法,类中可以有方法有成员属性
- 抽象类不允许实例化,必须继承才可以使用,且继承的子类必须实现所有的抽象方法,假定子类没有实现所有的方法,则子类也不能实例化
- 抽象类主要设定类的标准以便开发时同一规范
import abc
class man(metaclass=abc.ABCMeta):#定义一个类并且指定抽象类的元类
@abc.abstractmethod #定义一个抽象方法
def somking(self):
pass
@abc.abstractclassmethod #定义类抽象方法
def drink(cls):
pass
@abc.abstractstaticmethod #定义一个静态方法
def play():
pass
def sleep(self):#定义具体方法
print('sleeping')
d = dog()
p = people()
d.say_hello()
p.say_hello()