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