What are the advantages of interfaces and abstract classes?
Possible Duplicates:
purpose of interface in classes
What is the difference between an interface and abstract class?
嗨,我是一个PHP程序员。任何主体都可以解释使用接口和抽象类的好处。
- 参考:php.net/manual/en/language.oop5.interfaces.php
- stackoverflow.com/questions/1913098/…的可能副本
- …或者它上面数百万资源中的任何其他资源(请注意,语言不可知的资源也应该在这里应用,因此您可以避免有时质量非常低的PHP示例)。
- 您应该开始阅读所有这些问题:stackoverflow.com/search?Q=抽象+接口
- 另请参见,在像php这样的弱类型语言中,接口的意义是什么?
接口的主要优点是它允许您定义一个要实现的协议,使对象具有某种行为。例如,对于要实现的类,可以有一个与Compare方法类似的接口,而实现它的每个类都将有一个标准化的比较方法。
抽象类允许您为几个具体类定义一个公共基础。例如,假设您想要定义表示动物的类:
1 2 3 4 5 6 7
| abstract class Animal {
abstract protected function eat ();
abstract protected function sleep();
public function die() {
// Do something to indicate dying
}
} |
在这种情况下,我们将eat()和sleep()定义为抽象的,因为将从Animal继承的不同类型的动物(如狮子、熊等)以不同的方式进食和睡眠。但是所有的动物都是以同样的方式死去的(别让我这么认为),所以我们可以为它定义一个共同的功能。使用抽象类有助于我们1.)声明所有Animals应该具有的一些常见方法,2.)定义Animals的常见行为。因此,当扩展Animal时,不必重写die()的代码。