2016-06-14 5 views
0

PHPオブジェクト指向プログラミングに疑問があります。親インスタンスを必要とするインタフェースメソッドを実装する際の子クラスの依存性注入

は、このシナリオを想像:

abstract class A {} 

class B extends A {} 

interface C { 

    public someMethod(A $a); 
} 

これを行うには、それは可能、または任意の他の回避策ですか?

public class D implements C { 

    public function someMethod(B $b) { 
     // do something nice! 
    } 
} 
+1

「私はPHPのオブジェクト指向プログラミングについていくつかの疑問を持っています。 :) – TerraPass

+0

'instanceof'でチェックしますか? –

答えて

-1

前提条件は、サブタイプに強化することができません。

あなたはPHP言語の構造とそれを実装することはできませんLSP

台無しにしようとしています。

また、これは__constructでのみ機能

abstract class A {} 

class B extends A {} 

abstract class C { 
    public function __construct(A $a) {} 
} 

class D extends C { 
    public function __construct(B $b) { 
     // do something nice! 
    } 
} 

この例を確認してください。

関連する問題