PHP 抽象方法與抽象類 abstract 關鍵字
abstract 關鍵字用於定義抽象方法與抽象類。
抽象方法
抽象方法指沒有方法體的方法,具體就是在方法聲明的時候沒有 {} 括弧以及其中的內容,而是直接在聲明時在方法名後加上分號結束。
abstract 關鍵字用於定義抽象方法,語法:
abstract function function_name();
抽象類
只要一個類裡面有一個方法是抽象方法,那麼這個類就要定義為抽象類。抽象類同樣用 abstract 關鍵字來定義。
抽象類不能產生實例對象,通常是將抽象方法做為子類方法重載的模板使用的,且要把繼承的抽象類裡的方法都實現。實際上抽象類是方便繼承而引入的。
例子:
復制代碼 代碼如下:
<?php
abstract class AbstractClass{
// 定義抽象方法
abstract protected function getValue();
// 普通方法
public function printOut(){
print $this->getValue()."<br />";
}
}
class ConcreteClass extends AbstractClass{
protected function getValue(){
return "抽象方法的實現";
}
}
$class1 = new ConcreteClass;
$class1->printOut();
?>
在這個例子中,父類定義了抽象方法以及對於方法的實現,但實際的內容卻在子類裡定義。
用來提供基本的方法給派生類繼承的!
1、聲明一個抽象方法使用abstract關鍵字。
2、一個類中可以包含一個或多個抽象方法。
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();
}
}
抽象方法
抽象方法指沒有方法體的方法,具體就是在方法聲明的時候沒有 {} 括弧以及其中的內容,而是直接在聲明時在方法名後加上分號結束。
abstract 關鍵字用於定義抽象方法,語法:
abstract function function_name();
抽象類
只要一個類裡面有一個方法是抽象方法,那麼這個類就要定義為抽象類。抽象類同樣用 abstract 關鍵字來定義。
抽象類不能產生實例對象,通常是將抽象方法做為子類方法重載的模板使用的,且要把繼承的抽象類裡的方法都實現。實際上抽象類是方便繼承而引入的。
例子:
<?php
abstract class AbstractClass{
// 定義抽象方法
abstract protected function getValue();
// 普通方法
public function printOut(){
print $this->getValue()."<br />";
}
}
class ConcreteClass extends AbstractClass{
protected function getValue(){
return "抽象方法的實現";
}
}
$class1 = new ConcreteClass;
$class1->printOut();
?>
在這個例子中,父類定義了抽象方法以及對於方法的實現,但實際的內容卻在子類裡定義。