我正在研究 Abstract 和 Interface 之间的区别,我读了一句话 说
子类只能扩展单个抽象(或任何其他)类, 而接口可以扩展,或者类可以实现多个 其他接口。
我明白,当他说,“一个儿童班只能扩展一个抽象(或任何其他)课程,”他的意思是:
class first
{
public function Search()
{
return 'Hellow';
}
}
abstract class first2 extends first
{
}
class second extends first2
{
}
$ob = new second();
echo $ob->Search();
然而,我不理解他的句子的其余部分,他说,“虽然接口可以扩展,或者类可以实现多个其他接口。”
有人可以解释他的最后一句话并添加一个代码示例吗? 谢谢大家,祝你有个愉快的一天。
答案 0 :(得分:5)
您可以实施多个界面
interface C {
public function method1();
}
interface D {
public function method2();
}
class A implements C,D {
//implement from interface C
public function method1() {
}
//implement from interface D
public function method2() {
}
}
在这里,您将需要来自接口C和D的实现方法。您还可以扩展接口内的接口,例如普通类。
interface D extends C{}
当您需要一些常用方法时,这很有用。所以你在接口中写入“schema”,你希望从实现基类的方法。
虽然abstract是单个扩展类,但是你可以为它创建实例,只是扩展。当你想要一些具有通用功能的基类或者应该在以后实现的抽象方法时,这很有用。
您可以随时阅读php.net - interfaces