gpt4 book ai didi

php - PHP 是否有抽象接口(interface)的公开实现?

转载 作者:可可西里 更新时间:2023-11-01 13:00:01 27 4
gpt4 key购买 nike

我想到的概念来自Traversable界面。该接口(interface)不能直接实现,而是通过实现扩展它的接口(interface)来满足。

我能否声明一个无法实现的接口(interface),而是使用公共(public)接口(interface)进行扩展?

编辑:我意识到这种可能性毫无意义,因为它可以被第三方创建一个可以扩展基本接口(interface)的接口(interface)来规避。我正在寻找一种更简洁的方式来表达多态性。

例如:

abstract interface Vehicle
{
}

interface Car extends Vehicle
{
public function drive(RouteProvider $routeProvider, $speed)
}

interface Boat extends Vehicle
{
public function sail(BodyOfWater $water, $heading);
}

class PeopleMover
{
public function move(Vehicle $vehicle)
{
if ($vehicle instanceof Boat) {
// move people across bodies of water
} elseif ($vehicle instanceof Car) {
// move people along roads
}
}
}

最佳答案

接口(interface)的目的是定义应用程序如何访问您的对象,而不是控制对象的定义方式。这是您的对象向应用程序声明的一种方式,“我实现了这个接口(interface),所以您可以相信我有这些方法。”

如果你想控制对象的定义方式,你应该使用带有抽象方法的抽象类。

关于php - PHP 是否有抽象接口(interface)的公开实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28030960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com