可能重复:
接口与抽象类(通用 OO)
接口或抽象类:使用哪一个?
我对PHP 中的接口有一些疑问:
如果interface
作为实现它的类的一种蓝图,为什么不使用它abstract parent classes
呢?
interface
在什么情况下使用 a而不是a 更合适abstract class
?
abstract class
在什么情况下使用 a而不是 a更合适interface
?
究竟是什么用途interface
?
可能重复:
接口与抽象类(通用 OO)
接口或抽象类:使用哪一个?
我对PHP 中的接口有一些疑问:
如果interface
作为实现它的类的一种蓝图,为什么不使用它abstract parent classes
呢?
interface
在什么情况下使用 a而不是a 更合适abstract class
?
abstract class
在什么情况下使用 a而不是 a更合适interface
?
究竟是什么用途interface
?
一个很大的区别是你不能扩展多个抽象类,但你可以实现多个接口。
所以通过这种方式,对象如果实现了多个接口,就可以有多种用途,并且可以在各种不同的场景中使用。
所以为了让这更具体...
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;
}
}
通过这种方式,您可以在整个应用程序中拥有用于多种用途的对象。