美文网首页
Abstract Class与Interface区别

Abstract Class与Interface区别

作者: 苏康申 | 来源:发表于2019-04-03 22:25 被阅读0次

一、Abstract Class 与 Interface 的构造
抽象类 Abstract Class

<?php
abstract class A {
    public $attribute;
    abstract public function method1();
    abstract public function method2();
    public function method3() {
        //... code ...
    }
}
?>

接口 Interface

<?php
interface B {
public function method4();
public function method5();
}
?>

1)Abstract Class 中可以有抽象函数(method1,method2),也可以有具体的函数实现(method3),而 Interface 中只能定义函数而不能有实现(method4,method5)。显然,如果一个抽象类中的函数全部是抽象函数,那么这个抽象类就退化成了接口。

2)PHP 和 Java 一样,一个 Class 只能继承一个 Abstract Class,但可以实现多个 Interface。这即是所谓的单一继承体系,也就是子类别只能继承一个父类别;一个父类别则可以被多个子类别所继承。

3)在 Abstract Class 中可以声明属性成员变量(attribute),而 Interface 不可以。

相关文章

网友评论

      本文标题:Abstract Class与Interface区别

      本文链接:https://www.haomeiwen.com/subject/zdwtiqtx.html