キーワードと特殊変数
new、class、extends。この3つは誰もが知っています。
::、スコープ解決演算子 (Paamayim Nekudotayim とも呼ばれます)、またはより単純にコロンのペアを使用して、静的メンバー、メソッド、および定数にアクセスできます。クラス内のメンバーやメソッドをオーバーライドするためにも使用できます。
親と自分。 parent は、extends 宣言内の派生クラスが指す基本クラスの名前を参照します。これを行うと、複数の場所で基本クラス名を使用することがなくなります。
$この疑似変数。 $this は現在のインスタンスを指します。 $this は、必ずしもメソッドが属するオブジェクトであるとは限りません。クラス A 内のコードがクラス B の静的メソッドを呼び出すことがあります。参考例: http://www.php.net/manual/zh/ language.oop5.basic.php
静的キーワード。クラス メンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます。ただし、静的メソッドを除き、オブジェクトを介して静的メンバーにアクセスすることはできません。静的メソッドでは、$this は使用されません。代わりに self:: を使用してください。
最後のキーワード。これはクラスと関数で使用できるため、クラスを継承したりメソッドをオーバーライドしたりすることはできません。
属性
初期化できますが、初期化された値は定数である必要があります。 const キーワードは定数の前に使用します。定数の値は固定値である必要があり、変数、クラス属性、またはその他の操作 (関数呼び出しなど) の結果にすることはできません。
コンストラクターとデストラクター
これら 2 つの関数はどちらも、基本クラスの応答関数を秘密裏に呼び出すことはありません。これは Java のコンストラクター メカニズムとは異なります。この効果を実現するには、実行を表示する必要があります。デストラクターでは例外をスローできません。
抽象クラス: 抽象として宣言されたクラス メソッドには具体的な実装を含めることはできず、抽象クラスはインスタンス化できません。最初に継承してから、そのサブクラスをインスタンス化する必要があります。さらに、サブクラスのアクセス制御は、抽象クラスのアクセス制御と同じか、より緩和する必要があります。抽象クラスには、少なくとも 1 つの抽象メソッドが含まれます。
インターフェイス
インターフェイスを使用すると、クラスが実装する必要があるメソッドを指定できますが、これらのメソッドの特定の内容を定義する必要はありません。
定義されたすべてのメソッドはパブリックである必要があり、メソッドは空です
定数を定義できますが、属性はありません
インターフェイス実装はすべてのメソッドを実装する必要があり、複数のインターフェイスを実装できます(メソッドには同じ名前)。
インターフェースは他のインターフェースに継承(拡張)可能