抽象类

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

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





































以上是关于抽象类的主要内容,如果未能解决你的问题,请参考以下文章

查看发票组代码后的总结和有感

使用 Git 来管理 Xcode 中的代码片段

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

设计模式 行为型模式 -- 观察者模式(发布-订阅(Publish/Subscribe)模式)

记一次抽象类中定义的静态变量,多个子类继承后,在方法中被重写引起的问题

Java 封装