可能重复:
Interface vs Abstract Class (general OO)
Interface or an Abstract Class: which one to use?
我有一些关于interfaces in PHP的问题:
如果interface
作为实现它的类的蓝图,为什么不使用abstract parent classes
?
在什么情况下使用interface
而不是abstract class
更合适?
在哪些情况下使用abstract class
代替interface
会更合适?
interface
的用途究竟是什么?
答案 0 :(得分:3)
一个很大的区别是你不能扩展多个抽象类,但你可以实现多个接口。
因此,通过这种方式,对象可以有多种用途,并且如果它们实现多个接口,则可以在各种不同的场景中使用。
所以要让它更有形......
interface Wine{
function isPeppery();
}
interface Dessert{
function hasBerries(){
}
class PortWine implements Wine, Dessert{
function isPeppery(){
returns false;
}
function hasBerries(){
returns true;
}
}
class BlackForestCake implements Dessert{
function hasBerries(){
returns true;
}
}
通过这种方式,您可以在整个应用程序中拥有可用于多种目的的对象。