PHP:接口中的抽象方法

gfr*_*gfr 3 php oop interface abstract concrete

为什么我不能在接口中声明一个抽象方法?这是我的代码.谢谢.

<?php
interface Connection {
    public abstract function connect();
    public function getConnection();
}

abstract class ConnectionAbstract implements Connection() {
    private $connection;

    public abstract function connect();

    public function getConnection() {
        return $this->connection;
    }
}

class MySQLConnection extends ConnectionAbstract {
    public function connect() {
        echo 'connecting ...';
    }
}

$c = new MySQLConnection();
?>
Run Code Online (Sandbox Code Playgroud)

Vin*_*nie 14

接口中的所有函数都是隐式抽象的.在声明函数时不需要使用abstract关键字.


Eri*_*sma 6

请记住,实现接口的类的要求必须包含一系列公共方法,这些方法对应于接口中声明的方法签名.因此,例如,当您声明一个已定义的接口时public abstract function,您实际上是在说每个实现接口的类都必须具有一个名为的公共抽象方法connect.由于无法实例化具有抽象方法的对象,因此您最终将编写一个永远不能使用的接口.