【问题标题】:what is difference between abstract class and abstract function抽象类和抽象函数有什么区别
【发布时间】:2015-09-26 11:19:03
【问题描述】:

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

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

Abstract class test{
      Abstract function index();
}

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      抽象类不能被实例化。假设您有:

      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
        }
      }
      

      【讨论】:

      【解决方案3】:

      发件人:http://php.net/manual/en/language.oop5.abstract.php

      PHP 5 引入了抽象类和方法。类定义为 abstract 可能不会被实例化,并且任何类至少包含 一种抽象方法也必须是抽象的。定义为抽象的方法 只需声明方法的签名 - 他们不能定义 实施。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-10
        • 2017-04-19
        • 2010-12-27
        • 2011-01-24
        • 2013-09-24
        • 2013-10-17
        • 2010-09-26
        • 2014-09-21
        相关资源
        最近更新 更多