php spot
phpが使えるレンタルサーバー特集
検索グラス
トップページへ

abstract なクラス、メソッド
Javaのような abstract が定義できるようになりました。

abstract とは
「抽象的な, 観念的な, 理論的な; 非現実的な,」という意味になるのですが、まさにそういう感じで、定義した時点では使えません。

abstract class ABClass {
  abstract function hoge();
  function hoge2(){
    echo "hogehoge";
  }
}

こんな感じに定義します。

$obj = new ABClass;

はエラーとなります。

使うには、

abstract class ABClass {
  abstract function hoge();
  function hoge2(){
    echo "hogehoge";
  }
}

class MyClass extend ABClass {
  function hoge()
  {
    echo "yes!";
  }
}

$obj = new MyClass;
$obj->hoge();
$obj->hoge2(); // ←abstract class で定義したメンバも使える

のようにします。
MyClass は hoge を実装しないとエラーになります。
インタフェースに似ていますね。

まあ、こういう機能が追加されました。

って、interface に似てるじゃん、って思うかもしれませんが、abstract なクラスは、機能を実装できるという点で interface と違います(上記 hoge2メソッド)。

まあ、インタフェースに機能を実装しておいて、下位クラスで使いたいという場合には abstract を使いましょう、という感じです。
(インタフェースには機能を実装できないため)

スポンサードリンク



もどる
管理人の新着ブログ記事

    プライバシーポリシー | お問い合わせ
copyright © 2003-2018 phpspot all rights reserved. powered by phpspot CMS.