与抽象方法的接口

时间:2011-01-04 21:22:20

标签: php interface abstract

我遇到了一些由同事编写的PHP代码(它没有用于任何东西)。基本上它是一个包含抽象方法的接口。然后我说这是愚蠢的,并且显示另一位同事坐在我旁边。我们笑了,但后来开始互相询问是否有可能,如果是的话,它是否真的有用。显然这是不可能的(见下面的例子),但如果有可能会有用。

你能想到这可能有用的情况吗?

<?php
    interface Itest
    {
        abstract public function add(int $x, int $y);
    }

    abstract class ParentTest implements Itest
    {
        abstract public function add(int $x, int $y);
    }

    class test extends ParentTest
    {
        public function add(int $x, int $y)
        {
            return $x+$y;
        }
    }

    $w = new test;
    echo $w->add(5,8);
?>

2 个答案:

答案 0 :(得分:3)

根据定义,界面中的所有方法都是抽象的。

抽象方法是提供原型但未实现的方法。它强制子类实现它,或者声明为abstract。

答案 1 :(得分:1)

不,它没用。他应该使用抽象类或只使用简单的接口。

接口方法基本上都是抽象的,所以使用抽象接口方法没有多大意义。