PHPクラスの抽象化

WBOY
リリース: 2023-08-31 06:00:01
転載
1514 人が閲覧しました

PHPクラスの抽象化

はじめに

オブジェクト指向プログラミングでは、抽象クラスはインスタンス化できるクラスです。つまり、そのようなクラスのオブジェクトを宣言することはできません。 PHP はバージョン 5.0 から abstarct クラスの概念をサポートしています。

abstract キーワードで定義されたクラスは抽象クラスになります。さらに、少なくとも 1 つの抽象メソッドを含むクラスも抽象とみなされます。 ##

<?php
class testclass{
   //
}
?>
ログイン後にコピー

抽象メソッド

抽象メソッドは、そのシグネチャ、つまりその可視性、引数、および型ヒントを含む戻り値の型を宣言するだけであり、機能はありません。このような抽象クラスを継承するクラスは、すべての抽象メソッドをオーバーライドする (定義を提供する) 必要があります。子クラスの対応するメソッドは、親クラスと同じシグネチャを保持する必要があります。子クラスがこの条件を満たさない場合、PHP パーサーは例外をスローします。抽象クラスを拡張したクラスはインスタンス化できるため、具象クラスと呼ばれます。

次の例では、親クラスに 2 つの抽象メソッドがあり、そのうちの 1 つだけが子クラスで再定義されます。これにより、次のようなエラーが発生します。 -

Example

Live Demo

$a=new testclass();
PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass
ログイン後にコピー

Output

以下はエラー メッセージです

<?php
abstract class testclass{
   abstract function test1();
   abstract function hello();
}
class myclass extends testclass{
   function test1(){
      echo "Overrides parent test method";
   }
}
$a=new myclass();
?>
ログイン後にコピー

Abstract メソッド引数付き

#引数付きで抽象メソッドが定義されている場合は、子クラスで同じ数の引数を使用してオーバーライドする必要があります。

次の例では、親クラスの抽象メソッドには 2 つの引数があります。子クラスも 2 つの引数を持つ同じ関数を定義します

Example

ライブデモ

PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)
ログイン後にコピー

出力

これは以下の出力 -

<?php
abstract class testclass{
   abstract function hello($name, $age);
}
class myclass extends testclass{
   function hello($name, $age){
      echo "My name is $name and my age is $age";
   }
}
$a=new myclass();
$a->hello("Ravi",20);
?>
ログイン後にコピー
##を生成します#

以上がPHPクラスの抽象化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート