interface - php多接口方法重复问题
阿神
阿神 2017-04-11 09:49:55
[PHP讨论组]
interface A {
    public function code();
}

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

class C implements A,B {
//...code
}

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

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

阿神
阿神

闭关修行中......

全部回复(6)
高洛峰

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

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

怪我咯

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

大家讲道理

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

ringa_lee

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

高洛峰

可以了解一下PHP的性状。

伊谢尔伦

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号