2016-06-07 36 views
0

爲什麼你想在下面的示例聲明一個抽象方法,爲什麼在PHP OOP中使用抽象?

<?php 

    abstract class ClassName 
    { 
     abstract public function methodName(); 
    } 
?> 

時,當由繼承子類操縱

<?php 

    class ClassName 
    { 
     public function methodName() 
     { 
      // Body of method 
     } 
    } 
?> 

將提供相同的結果。

+3

https://en.wikipedia.org/wiki/Abstract_type#Use_of_abstract_types「抽象類型是有用的,因爲它們可以用來定義和執行一個協議;一組操作,實現該協議的所有對象都必須支持。」 – ceejayoz

+1

不,它不提供相同的結果。任何子類都不會被強制覆蓋'methodName'。要回答**爲什麼**,這真的取決於你自己決定。這就像問ENUM爲什麼存在,它可以幫助你編寫可維護的代碼。 –

+1

所以,繼續@ ceejayoz的引用 - 它可以幫助你保持你的代碼更加乾淨和嚴格。 – strangeqargo

回答

2

對程序員的指導。如果使用正確,您給出的兩個代碼示例僅等同於可以對包含存根方法的類進行例化和使用,但它默默無法完成需要完成的任務。抽象類將引發錯誤,除非派生子類並覆蓋所有抽象方法。

相關問題