php中接口与抽象类有什么不同

介绍

这篇文章将为大家详细讲解有关php中接口与抽象类有什么不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

接口和抽象类真的很难区分开,引文他们很相似,方法都没有定义逻辑,都是供子类是想或继承的。区分二者只要记住一句话:<强> 接口的目的是定义一个规范,大家都遵守这个规范。

也就是说,从目的上可以很清楚地区分接口和抽象类。那么还是有疑问,既然有了借口,那么为什么还必须有抽象类呢?

加入我们要定义一个名为动物的类,该类有两个子集狗和牛,二者都有两个方法:运行()方法和说话()方法。

假定狗和牛的“跑”(运行)是相同的,因此运行()方法具有相同的业务逻辑;而“叫(说话)”是不同的,因此说话()方法的业务逻辑不同,而且,有一个IAnimal的接口规定必须有这两个方法,这意味着动物类必须实现这两个方法,同样,狗和牛这两个子类也必须有这两个方法吗,那么我们可以这样定义:

代码如下:


& lt; ?php
界面IAnimal {
,公共职能运行();
,公共职能说();
}
类动物实现IAnimal {
,公共职能运行(){
,,//在这里可以添加一些相同的运行逻辑
,,返回“run<相同;br/在“;
,}
,公共职能说(){
,,//这里可以添加一些相同的说话逻辑
,,返回“speak<相同;br/在“;
,}
}
类狗延伸动物{
,公共职能说(){
,,//在这里可以添加一些狗逻辑
,,返回“狗speak
,}
}
牛类动物延伸{
,公共职能说(){
,,//在这里可以添加一些牛逻辑
,,返回“牛speak
,}
}
$ oDog=新狗();
回波(oDog→美元运行());
回波(oDog→美元说());
$ oCattle=新牛();
回波(oCattle→美元运行());
回波(oCattle→美元说());
?在

关于php中接口与抽象类有什么不同就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

php中接口与抽象类有什么不同