Python抽象类和接口类的区别和联系
抽象类和接口类都是用来定义一些规范,让子类去实现。它们的区别在于:
抽象类可以有实现的方法,而接口类只能有声明的方法。
子类继承抽象类时,必须实现所有的抽象方法,而接口类可以只实现部分方法。
下面是一个简单的例子,演示了如何使用接口类:
from abc import ABC, abstractmethod class IPrintable(ABC): @abstractmethod def print(self): pass class Book(IPrintable): def __init__(self, title): self.title = title def print(self): print("Book: {}".format(self.title)) class Magazine(IPrintable): def __init__(self, name): self.name = name def print(self): print("Magazine: {}".format(self.name)) book = Book("Python编程从入门到放弃") book.print() magazine = Magazine("Python之禅") magazine.print()
在这个例子中,IPrintable 是一个接口类,它定义了一个 print 方法。Book 和 Magazine 是 IPrintable 的子类,它们必须实现 print 方法。在这个例子中,我们分别实例化了 Book 和 Magazine,并调用了它们的 print 方法,输出了不同的结果。
希望这个例子能够帮助你理解抽象类和接口类的区别和联系。
相关文章