PHP 抽象メソッドと抽象クラスの抽象キーワード
abstract キーワードは、抽象メソッドと抽象クラスを定義するために使用されます。
抽象メソッド
抽象メソッドとは、メソッド本体のないメソッドを指します。具体的には、メソッドが宣言されるときに、{} 括弧やその中のコンテンツはなく、メソッド名の後にセミコロンを付けて直接宣言されます。
abstract キーワードは抽象メソッドを定義するために使用されます。構文:
抽象関数 function_name();
抽象クラス
クラス内に抽象メソッドが存在する限り、そのクラスは抽象クラスとして定義される必要があります。抽象クラスは、abstract キーワードを使用して定義することもできます。
抽象クラスはインスタンス オブジェクトを生成できません。通常、抽象メソッドはサブクラス メソッドのオーバーロードのテンプレートとして使用され、継承された抽象クラス内のすべてのメソッドを実装する必要があります。実際、抽象クラスは継承を容易にするために導入されています。
例:
2. クラスには 1 つ以上の抽象メソッドを含めることができます。
3. 非抽象メソッドは抽象クラスに存在できます。
4. 抽象クラスは直接インスタンス化できません。
5. 抽象クラスを実装するには「:」(コロン) を使用し、抽象メソッドを実装するには override キーワードを使用します。
6. 抽象クラスは抽象クラスによって継承でき、結果は依然として抽象クラスです。
7. 抽象メソッドの実装後は、修飾子を変更できません。
例は次のとおりです:
public abstract class Person
{
public abstract void SayHello();
public void about()
{
Console.WriteLine("Abstract Demo");
}
}
public class Student : Person
{
public override void SayHello()
{
Console.WriteLine("SayHello");
}
}
class MainClass
{
public static void Main()
{
new Student().SayHello();
}
}
php 抽象メソッドとクラスは一般的にどこで使用されますか?
抽象メソッド
抽象メソッドとは、メソッド本体のないメソッドを指します。具体的には、メソッドを宣言するときに、{} 括弧やその中の内容が存在せず、メソッド名の後にセミコロンを付けて直接宣言されます。
abstract キーワードは抽象メソッドを定義するために使用されます。構文:
abstract function function_name();
Abstract class
クラス内の 1 つのメソッドが抽象メソッドである限り、このクラスは抽象クラスとして定義する必要があります。抽象クラスは、abstract キーワードを使用して定義することもできます。
抽象クラスはインスタンス オブジェクトを生成できません。抽象メソッドは通常、サブクラス メソッドのオーバーロードのテンプレートとして使用され、継承された抽象クラス内のすべてのメソッドを実装する必要があります。実際、抽象クラスは継承を容易にするために導入されています。
例:
abstract class AbstractClass{
// 抽象メソッドを定義
abstract protected function getValue();
// 通常のメソッド
public function printOut(){
print $this->getValue() ."
";
}
}
class ConcreteClass extends AbstractClass{
protected function getValue(){
return "抽象メソッドの実装";
}
}
$class1 = new ConcreteClass;
$ class1->printOut();
?>
この例では、親クラスは抽象メソッドとそのメソッドの実装を定義しますが、実際の内容はサブクラスで定義されます。