ホームページ > バックエンド開発 > PHPの問題 > PHPの抽象クラスとは何ですか?使い方?

PHPの抽象クラスとは何ですか?使い方?

王林
リリース: 2023-02-23 17:14:01
転載
3418 人が閲覧しました

PHPの抽象クラスとは何ですか?使い方?

抽象クラス: クラス内の少なくとも 1 つのメソッドは抽象メソッドであり、これを抽象クラスと呼びます。

要件:

1. クラスには少なくとも 1 つの抽象メソッドが必要です

2. 抽象メソッドは許可されていませんhave {}

3. Abstract

を抽象メソッドの前に追加する必要があります。例: クラスの前に abstract

<?php 
    abstract class Human {
        public abstract function getInfo () {
            echo &#39;我是getInfo&#39;;
        }
    }
?>
ログイン後にコピー

を追加して、次の抽象クラスを定義します人間。抽象クラスに抽象メソッドがあります。実行すると、エラーが報告されます。

Fatal error: Abstract function Human::getInfo() cannot contain body
ログイン後にコピー

抽象メソッドにはテキスト部分を含めることはできません (メソッド本体はありません)。中かっこを削除する必要があります

<?php 
    abstract class Human {
        public abstract function getUserInfo ();
        public abstract function getWalletInfo ();
    }
    
    class Student extends Human {
        public function getUserInfo () {
            echo &#39;getinfo&#39;;
        }
        
        public function getWalletInfo () {
            echo &#39;getwalletInfo&#39;;
        }
    }
    
    $Tom = new Student();
    $Tom -> getUserInfo();
    $Tom -> getWalletInfo ();
?>
ログイン後にコピー

Note:

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

abstract class Human {
    public abstract function getUserInfo ();
    public abstract function getWalletInfo ();
}

class Student extends Human {
    public function getUserInfo () {
        echo &#39;getinfo&#39;;
    }
    
    // public function getWalletInfo () {
    //     echo &#39;getwalletInfo&#39;;
    // }
}

$Tom = new Student();
ログイン後にコピー

たとえば、派生クラスに getWalletInfo() メソッドがない場合、new は失敗します

抽象クラスの意味: 派生クラスが抽象クラスを継承する場合、メソッドを確立するために抽象クラスの命名規則を使用する必要があり、そうでない場合、派生クラスはインスタンス化できません。規範的手法の目的を達成するための仕様。

関連コンテンツをさらに知りたい場合は、php 中国語 Web サイトにアクセスしてください: PHP ビデオ チュートリアル

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

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