84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
在《Android 与 PHP 开发最佳实践》中看到“PHP interface 代价非常高 请尽可能使用抽象类代替接口” ,有点晕,求具体的分析。
业精于勤,荒于嬉;行成于思,毁于随。
性能高低,我这边没法分析,我不觉得有必要去分析。抽象类,和 接口类 出现的目的是不一样的,他们的使用方式是不一样的。接口类,是定义一些接口标准,只定义不实现。实现接口类的类,要表达的是,我有 接口类 中的定义的方法,但是具体实现方式各异。抽象类,是可以实现具体方法的,继承抽象类的类,我用的就是抽象类的方法,包括具体实现(子类也可以重写方法,覆盖父类)
注意,我说的是 实现接口类,继承抽象类,在 PHP 只能 extends 一个父类(包括抽象类),但可以 implements多个接口类,这个在用法上就区分了。
实现接口类
继承抽象类
extends
implements
我是没看过 你提到的这本书,我是觉得,要有自己的分辨,合理使用。及时真的性能上有小差别,但是为了程序的可维护性,牺牲一点小性能,也是可以接受的。
$className="xxx"; $instance=new $className;
这是interface还是抽象类?
性能高低,我这边没法分析,我不觉得有必要去分析。
抽象类,和 接口类 出现的目的是不一样的,他们的使用方式是不一样的。
接口类,是定义一些接口标准,只定义不实现。实现接口类的类,要表达的是,我有 接口类 中的定义的方法,但是具体实现方式各异。
抽象类,是可以实现具体方法的,继承抽象类的类,我用的就是抽象类的方法,包括具体实现(子类也可以重写方法,覆盖父类)
注意,我说的是
实现接口类
,继承抽象类
,在 PHP 只能extends
一个父类(包括抽象类),但可以implements
多个接口类,这个在用法上就区分了。我是没看过 你提到的这本书,我是觉得,要有自己的分辨,合理使用。
及时真的性能上有小差别,但是为了程序的可维护性,牺牲一点小性能,也是可以接受的。
这是interface还是抽象类?