ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルにおける抽象クラスと抽象メソッドの問題分析の詳細な解釈

PHP_PHP チュートリアルにおける抽象クラスと抽象メソッドの問題分析の詳細な解釈

WBOY
リリース: 2016-07-13 10:42:19
オリジナル
878 人が閲覧しました

オブジェクト指向 (OOP) 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは継承を容易にするために導入されています。次に、抽象クラスと抽象メソッドの定義方法とその特徴を見てみましょう。

抽象メソッドとは何ですか?メソッド名のみでメソッド本体を持たずにクラス内に定義するメソッドは、いわゆるメソッド本体が存在しないことを意味します。これは、メソッドが宣言されるときに、代わりに中括弧とその内容が存在しないことを意味します。直接宣言する場合はメソッド名の後ろにセミコロンを付けます。また、抽象メソッドを宣言する場合はキーワード「abstract」を追加して変更します。

1. 抽象的なキーワード: 抽象的な

抽象とは、正確に説明できないが、特定の概念または名前があることを意味します。PHP で抽象クラスまたはメソッドを宣言するには、abstract キーワードを使用する必要があります。

2. 抽象メソッドと抽象クラスの定義

クラス内の少なくとも 1 つのメソッドは抽象メソッドであり、それを抽象クラスと呼びます。したがって、抽象クラスを定義する場合は、最初に抽象メソッドを定義します。


コードをコピーします コードは次のとおりです:
abstract class class1{
abstract function fun1(); ...

}


1. クラス内に少なくとも 1 つの抽象メソッドが存在します

2. 抽象メソッドは、抽象メソッドの前に追加する必要があります。メソッド


3. 抽象クラスとメソッドの使用規則


抽象クラスのいくつかの特徴:

1. インスタンス化はできませんが、継承のみ可能です

2. 継承された派生クラスでは、インスタンス化する前にすべての抽象メソッドをオーバーロードする必要があります

抽象メソッドに関するステートメントは次のとおりです:

コードをコピーします

コードは次のとおりです:abstract function fun1();

?>


抽象クラスとは何ですか?クラス内のメソッドが抽象メソッドである限り、クラスは抽象クラスとして定義する必要があります。抽象クラスはキーワード「abstract」を使用して変更する必要もあります。抽象クラスはオブジェクトをインスタンス化できないため、抽象メソッドはサブクラス メソッドのオーバーロードのテンプレートとして使用され、継承された抽象クラス内のすべてのメソッドが実装される必要があります。

抽象クラスと抽象クラスの実装例は以下の通りです:

コードをコピーします

コードは次のとおりです:abstract class User{ //抽象クラスを定義します
抽象保護関数 getUser() //抽象メソッドを定義します
; public function print_content(){
$this->getUser();
}
}

class vipUser extends User{
protected function getUser(){ return "抽象クラスと抽象メソッド www.jb51.net";

}
}

$user=new vipUser(); // サブクラスをインスタンス化します
$user->print_content(); // 抽象クラスと抽象メソッド

?>




注: 抽象クラスが別の抽象クラスを継承する場合 (目的は抽象クラスを拡張することです)、親クラスの抽象メソッドをオーバーライドすることはできません。

PHP5.1 では、静的抽象メソッドが抽象クラスでサポートされています。以下の例では、静的抽象メソッドを宣言できることがわかります。このメソッドを実装する場合は、静的メソッドである必要があります。

コードをコピーします

コードは次のとおりです:abstract class User{
protected static $sal=0;
static abstract function getSal();
static abstract function setSal($ sal);
}
クラス VipUser は User{
静的関数 getSal(){
return self::$sal;
}
静的関数 setSal($sal){
self::$sal=$sal;
}
を拡張します}
VipUser: :setSal(100);
echo "あなたは www.jb51.net " . VipUser::getSal();
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/635836.html技術記事オブジェクト指向 (OOP) 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。そして抽象メソッドは...
のためのものです
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート