我正在尝试学习 PHP 中的 OOP,但我对接口(interface)和抽象类有些困惑。它们都没有实现,只有定义,并且应该通过它们的子类来实现。抽象类的哪一部分清楚地将它们与接口(interface)区分开来?另外,由于它们明显的相似性,我应该基于什么原因决定使用一个而不是另一个?
最佳答案
可以创建包含具体成员的抽象类,例如方法或属性。您仍然无法直接实例化抽象类,但任何实例化的子类都可以从抽象类中定义的已实现成员中受益。
相比之下,接口(interface)从不包含任何实现逻辑。由每个实现类提供接口(interface)中定义的所有成员的实现。
就我如何看待差异而言,抽象的子类是该类型的一个类。例如狗
是一种动物
。我将接口(interface)视为一种做 的关系。例如ICanDisplayImages
告诉我实现类可以显示图像,但没有告诉我该类实际代表什么。
关于php - 抽象类的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288467/