php 抽象类、接口、契约式编程

抽象类是使用abstract关键字声明的类。通过将某个类标记为抽象类,可以推迟实现所声明的方法。要将某个方法生命为抽象方法,只需要省略掉包含所有大括号的方法实现体,将方法声明的代码行用分号结束即可。
抽象类不能直接被实例化,他们必须被继承。如果某个类从抽象类继承,当它没有实现基类中所声明的所有抽象方法时,它就必须被声明为抽象的。
接口中,也可以声明没有方法体的方法原型,这点与抽象类很相似。它们之间的区别在于,接口不能声明任何具有方法体的方法;并且它们使用的语法也不一样。为了将接口规则强制加到某个类上,需要使用implements关键字,而不是使用extends关键字。
在某些情况下,我们希望确定某个类是否特定的类型,或者是否实现了特定的接口。instanceof操作符非常适合完成这个任务。instanceof操作符检查三件事情:实例是否某个特定的类型实例是否从某个特定的类型继承实例或者他的任何祖先类是否实现了特定的接口
某些语言具有从多个基类继承的能力,这成为多重继承。PHP不支持多重继承。相反,它提供了为一个类声明多个接口的功能。
接口在声明类必须遵循的规则是非常有用。约式编程技术使用这一功能来增强封装性,优化工作流程。

原文地址:https://www.cnblogs.com/leelike/p/1849726.html