ホームページ >バックエンド開発 >PHPチュートリアル >PHPにおける抽象クラスと抽象メソッドの定義とルールの使い方を詳しく解説

PHPにおける抽象クラスと抽象メソッドの定義とルールの使い方を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-03 09:25:272369ブラウズ

オブジェクト指向 (OOP) 言語では、クラスは 1 つ以上のサブクラスを持つことができ、各クラスには外部コードがアクセスするためのインターフェイスとして少なくとも 1 つのパブリック メソッドがあります。抽象メソッドは継承を容易にするために導入されています。次に、抽象クラスがどのように定義されているか、そしてその特徴を見てみましょう。 抽象メソッドとは何ですか?メソッド名のみでメソッド本体を持たずにクラス内に定義するメソッドは、いわゆるメソッド本体が存在しないことを意味し、宣言時に中括弧やメソッドの内容が存在しません。を直接宣言する場合は、メソッド名の後にセミコロンを付けます。また、抽象メソッドを宣言する場合は、キーワード「abstract」を追加して変更します。

1. 抽象キーワード: abstract

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

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

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


コードは次のとおりです:

abstract class class1{                                            
   abstract function fun1(); 
   ……
}

1. クラスには少なくとも 1 つの抽象メソッドがあります

2. 抽象メソッドは {} を持つことはできません

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


3. 抽象クラスとメソッドの使用に関するルール


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

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

2. すべての抽象

メソッドは、継承された派生クラスでオーバーロードされる必要があります

インスタンス化される前に 抽象メソッドに関するステートメントは次のとおりです:

コードは次のとおりです:

<?php
abstract function fun1();
?>

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


抽象クラスとその実装の例は次のとおりです:

コードは次のとおりです:

<?php
abstract class User{  //定义抽象类
    abstract protected function getUser(); //定义抽象方法
    public function print_content(){
        print $this->getUser();
    }
}
class vipUser extends User{
    protected function getUser(){
        return "抽象类与抽象方法www.jb51.net";
    }
}
$user=new vipUser(); //实例化子类
$user->print_content(); //抽象类与抽象方法
?>

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

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

コードは次のとおりです:

<?php
abstract class User{
 protected static  $sal=0;
 static abstract function getSal();
 static abstract function setSal($sal); 
}
class VipUser extends User{
 static function getSal(){
  return self::$sal;
 }
 static function setSal($sal){
  self::$sal=$sal;
 }
}
VipUser::setSal(100);
echo "you sal is www.jb51.net " . VipUser::getSal();
?>

以上がPHPにおける抽象クラスと抽象メソッドの定義とルールの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。