抽象类和抽象函数之间有什么区别

时间:2015-07-08 13:40:37

标签: php oop abstract-class abstract-data-type

我知道如果我创建一个abstract类,那么我就无法创建它的实例,它只是一个基本类(将其扩展到其他类) 。现在我想知道什么是abstract函数? (或者还有abstract属性?)

我在abstract中看到了一个没有定义的函数(函数也是抽象的),为什么呢?像这样:

Abstract class test{
      Abstract function index();
}

3 个答案:

答案 0 :(得分:2)

抽象函数是尚未实现的函数。抽象函数的实现必须在继承的类中完成。

具有抽象函数的类必须是抽象类。

抽象函数允许您在抽象类中编写算法而不定义所有子函数(声明为抽象),因为这些子函数可能依赖于具体继承类的上下文。

答案 1 :(得分:1)

无法实例化抽象类。假设你有:

Abstract class People {

}

您不能$people = new People();

您需要扩展它才能实例化它,例如:

class Man extends People {

}

$people = new Man();

关于抽象方法,它们只包含抽象类中的方法签名,它们必须在子类中实现。

Abstract class People {
  abstract public function getAge();
}
class Man extends People {
  public function getAge() {
    //Blah Blah
  }
}

答案 2 :(得分:0)

来自:http://php.net/manual/en/language.oop5.abstract.php

  

PHP 5引入了抽象类和方法。类定义为   可能没有实例化abstract,以及至少包含的任何类   一个抽象方法也必须是抽象的。方法定义为抽象   只需声明方法的签名 - 他们无法定义   实施