码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类

时间:2018-07-16 17:14:41      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:rac   抽象方法   实现   bst   继承   tac   pass   walk   归一化   

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

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

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

抽象类

标签:rac   抽象方法   实现   bst   继承   tac   pass   walk   归一化   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!