报错提示:ObjectBase 类包含一个抽象方法,所以说该类必须被声明为抽象的或必须实现 SayHelloInterface 的 say() 方法。

根据报错提示修改代码如下:

interface SayHelloInterface

public function say();

abstract class ObjectBase implements SayHelloInterface

class HelloWorld extends ObjectBase

public function say()

echo 'Hello world!';

$obj = new HelloWorld();

$obj->say();

运行结果如下:

如果一个类 implements 了一个接口类,在自身的方法中必须实现该接口类中的方法吗?php版本:5.6.32测试代码如下:interface SayHelloInterface{public function say();}class ObjectBase implements SayHelloInterface{}class HelloWorld extends ObjectBase{pu...
和大多数面向对象的编程语言一样,在 PHP 中是不支持多重继承的。如果要 实现 多重继承功能,可以通过 接口 接口 的思想是指定一个 实现 了该 接口 必须 实现 的一系列函数。一般,我们用interface来声明一个 接口 ,并在 接口 中声明一些方法(即函数),注意只是声明不用 实现 这个函数。然后,用class声明一个 并用implements去使用这个 接口 ,再在 中把 接口 中的声明的方法进行 实现
日前项目中遇到一个问题: 有一个 接口 ,这个 接口 定义了一种规范和标志, 接口 中只有一个初始化方法, 接口 实现 可能会有非常多,需要在容器启动过程中我们去手动初始化这个 接口 的所有 实现 ,虽然在spring中我们可以直接配置,但是维护与使用时却不够优雅。 1. 以一个Config 接口 为例: Java代码 publicinterfaceConfig{...
日前项目中遇到一个问题:         有一个 接口 ,这个 接口 定义了一种规范和标志, 接口 中只有一个初始化方法, 接口 实现 可能会有非常多,所以现在容器启动过程中我们去手动初始化这个 接口 的所有 实现 ,虽然在spring中我们可以直接配置,但是维护与使用时却不够优雅。        1. 以一个Config 接口 为例: public interface Config { 1. 抽象 抽象 是一种特殊的 ,不能被实例化,只能被继承。它定义了一些抽象方法(方法没有具体 实现 ),子 必须 实现 这些抽象方法才能被实例化。抽象 可以包含具体的方法和属性,也可以包含抽象方法。使用抽象 可以 实现 代码复用和规范化。 2. 接口 接口 是一种规范或契约,定义了一组方法的签名(方法名、参数和返回 型),没有具体的 实现 可以 实现 一个或多个 接口 实现 接口 必须 实现 接口 中定义的所有方法。 接口 可以被认为是一种纯抽象 ,只包含抽象方法和常量。使用 接口 可以 实现 多态性和代码复用。 下面是抽象 接口 的主要区别: 1. 实现 方式 抽象 通过继承来 实现 ,子 必须 实现 所有抽象方法才能被实例化。而 接口 通过 实现 实现 必须 实现 接口 中定义的所有方法才能被实例化。 2. 方法的 实现 抽象 可以包含具体的方法和属性,子 可以继承这些具体的方法和属性。而 接口 只能包含抽象方法和常量, 实现 接口 必须自行 实现 所有方法。 3. 继承 一个 只能继承一个抽象 ,但可以 实现 多个 接口 。这意味着 接口 更适合 实现 多重继承。 4. 使用场景 抽象 适用于具有相似功能的多个 ,其中某些方法有共同的 实现 ,又有些方法需要由子 实现 接口 适用于定义一个规范或契约,让不同的 实现 相同的方法,以 实现 多态性。 总的来说,抽象 接口 都是 实现 面向对象编程中的抽象概念的重要工具,它们的选择取决于具体的应用场景。