Spi*_*idE 14 php oop abstract-class interface
我试图在PHP中学习OOP,我对接口和抽象类有一些困惑.它们都不包含任何实现,只包含定义,并且应该通过它们的子类来实现.抽象类的哪一部分明确区别于接口?另外,由于它们有明显的相似性,我应该根据什么原因决定使用一个而不是另一个?
可以创建包含具体成员的抽象类,例如方法或属性.您仍然无法直接实例化抽象类,但任何实例化的子类都可以从抽象类中定义的已实现成员中受益.
相比之下,接口从不包含任何实现逻辑.它由每个实现类提供,以提供接口中定义的所有成员的实现.
在我如何查看其区别方面,一个子类的抽象的是,一个类类型.例如Dog
是Animal
.我将界面视为一种关系.例如ICanDisplayImages
告诉我实现类可以显示图像,但不告诉我类实际代表什么.