扫码关注官方订阅号
在《Android 与 PHP 开发最佳实践》中看到“PHP interface 代价非常高 请尽可能使用抽象类代替接口” ,有点晕,求具体的分析。
业精于勤,荒于嬉;行成于思,毁于随。
性能高低,我这边没法分析,我不觉得有必要去分析。抽象类,和 接口类 出现的目的是不一样的,他们的使用方式是不一样的。接口类,是定义一些接口标准,只定义不实现。实现接口类的类,要表达的是,我有 接口类 中的定义的方法,但是具体实现方式各异。抽象类,是可以实现具体方法的,继承抽象类的类,我用的就是抽象类的方法,包括具体实现(子类也可以重写方法,覆盖父类)
注意,我说的是 实现接口类,继承抽象类,在 PHP 只能 extends 一个父类(包括抽象类),但可以 implements多个接口类,这个在用法上就区分了。
实现接口类
继承抽象类
extends
implements
我是没看过 你提到的这本书,我是觉得,要有自己的分辨,合理使用。及时真的性能上有小差别,但是为了程序的可维护性,牺牲一点小性能,也是可以接受的。
$className="xxx"; $instance=new $className;
这是interface还是抽象类?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
性能高低,我这边没法分析,我不觉得有必要去分析。
抽象类,和 接口类 出现的目的是不一样的,他们的使用方式是不一样的。
接口类,是定义一些接口标准,只定义不实现。实现接口类的类,要表达的是,我有 接口类 中的定义的方法,但是具体实现方式各异。
抽象类,是可以实现具体方法的,继承抽象类的类,我用的就是抽象类的方法,包括具体实现(子类也可以重写方法,覆盖父类)
注意,我说的是
实现接口类,继承抽象类,在 PHP 只能extends一个父类(包括抽象类),但可以implements多个接口类,这个在用法上就区分了。我是没看过 你提到的这本书,我是觉得,要有自己的分辨,合理使用。
及时真的性能上有小差别,但是为了程序的可维护性,牺牲一点小性能,也是可以接受的。
这是interface还是抽象类?