抽象类
Posted ekura
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类相关的知识,希望对你有一定的参考价值。
抽象类基于继承演变而来,不能被实例化,用于规范子类,降低使用复杂度
import abc
class People(metaclass=abc.ABCMeta): #定义抽象类
all = "type" #抽象类还是类 可以有数据属性
@abc.abstractmethod #定义抽象方法 无需实现,用来规定子类必须有该方法
def eat(self):
pass
@abc.abstractmethod
def walk(self):
pass
class Teacher(People):
def eat(self):
print("can eat something..")
def walk(self):
print("can walk everywhere..")
def look(self):
print("can look something..")
class Student(People):
def eat(self):
print("can eat something..")
def walk(self):
print("can walk everywhere..")
# t = People()
# t.eat() #Can‘t instantiate abstract class People with abstract methods eat 不能实例化抽象类
t = Teacher()
t.eat()
t.walk()
t.look()
s = Student()
s.eat()
s.walk()
s.type() s继承父类的数据属性
抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如type)和函数属性(如eat walk),而接口只强调函数属性的相似性。
抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计
以上是关于抽象类的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用
设计模式 行为型模式 -- 观察者模式(发布-订阅(Publish/Subscribe)模式)