首页 > 其他 > 详细

抽象类

时间:2018-07-16 16:55:12      阅读:144      评论:0      收藏:0      [点我收藏+]

抽象类基于继承演变而来,不能被实例化,用于规范子类,降低使用复杂度

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),而接口只强调函数属性的相似性。

抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计

抽象类

原文:https://www.cnblogs.com/ekura/p/9318460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!