interface - php多接口方法重复问题

WBOY
Freigeben: 2016-08-18 09:16:27
Original
930 Leute haben es durchsucht

<code>interface A {
    public function code();
}

interface B {
    public function code(string $string);
}

class C implements A,B {
//...code
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

当C同时需要实现这两个接口的时候,有什么方法同时使用 A,B两个接口中的code方法????

本地测试只能使用其中一个方法

回复内容:

<code>interface A {
    public function code();
}

interface B {
    public function code(string $string);
}

class C implements A,B {
//...code
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

当C同时需要实现这两个接口的时候,有什么方法同时使用 A,B两个接口中的code方法????

本地测试只能使用其中一个方法

php不能overloading(同方法名,但参数不一致),能够在继承中overriding(同方法名,且不论参数是否一致)。
也就是说php的参数如何变,只要方法名字一样都被当做本类的同一个方法。

当然作为动态语言,我们可以通过魔法方法模拟java的overloading参考:http://php.net/manual/en/lang...

有个粗挫的方法,你把AB接口的具体逻辑都整合到C接口里面,直接调用C接口^_^

func_get_args http://php.net/manual/en/func...

本身这种写法就是个尝试错误,公用方法写在外面,类中直接调用,不要每一个口都写个一样的,维护起来也巨麻烦

可以了解一下PHP的性状。

php不支持多态, 所以最好避免这种写法

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!