2011-01-04 18 views
0

私は同僚が書いたPHPコードを見つけました(何にも使われていませんでした)。基本的に抽象メソッドを含むインターフェースでした。私はこれが愚かで、私の隣に座っている別の同僚を示していたと言いました。私たちは笑ったが、それが可能であればお互いに尋ね始めました。もしそうなら、実際に役立っていれば尋ね始めました。どうやらそれは可能ではありません(下記の例を参照してください)。可能であれば、それは役に立つでしょう。抽象メソッドを使用したインターフェイス

これは役に立ちそうな状況を考えることができますか?

<?php 
    interface Itest 
    { 
     abstract public function add(int $x, int $y); 
    } 

    abstract class ParentTest implements Itest 
    { 
     abstract public function add(int $x, int $y); 
    } 

    class test extends ParentTest 
    { 
     public function add(int $x, int $y) 
     { 
      return $x+$y; 
     } 
    } 

    $w = new test; 
    echo $w->add(5,8); 
?> 
+0

あなたは何について正確にお尋ねしますか?抽象的なキーワードかスカラータイプのヒント? – ryeguy

+0

私は、抽象メソッドを含むインターフェースが役に立つと思っていますか?特定のインタフェースを実装する抽象クラスがあります。 – gprime

+0

次に、 "int"型のヒントを削除する必要があります。 phpのスカラーにヒントを入力することはできません。 – ryeguy

答えて

3

インターフェイス内のすべてのメソッドは、定義によって抽象的なものです。

抽象メソッドは、プロトタイプが提供されていて実装されていないメソッドです。これは、サブクラスが強制的に実装するか、または抽象クラスとして宣言されるようにします。

1

いいえ、それは役に立ちません。彼は、抽象クラスまたは単純なインタフェースを使用する必要があります。

インターフェイスメソッドは基本的には抽象的なので、抽象的なインターフェイスメソッドを持つことはあまり意味がありません。

関連する問題