- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PHP/OOP/複数のインターフェイスを実装する際のメソッド名衝突 へ行く。
- 1 (2012-01-15 (日) 02:08:54)
- 2 (2012-01-15 (日) 02:27:02)
複数のインターフェイスを実装する際のメソッド名衝突
<?php interface Interface1 { public function foo(); public function bar(); } interface Interface2 { public function bar(); } class Class1 implements Interface1,Interface2 { public function foo() {} public function bar() {} }
これを実行すると↓。
PHP Fatal error: Can't inherit abstract function Interface2::bar() (previously declared abstract in Interface1) in /home/taro/tmp/Class1.php on line 9
ちなみにJavaだとOK↓。
interface Interface1 { void foo(); void bar(); } interface Interface2 { void bar(); } public class Class1 implements Interface1, Interface2 { public static void main( String args[] ) { } public void foo() { } public void bar() { } }