インターフェイスを使用/実装する C# の方法を模倣する方法を探しています。要するに、次のコードを複製しようとしています。
interface EBook {
function read();
}
class EBookReader {
private $book;
function __construct(EBook $book) {
$this->book = $book;
}
function read() {
return $this->book->read();
}
}
class PDFBook implements EBook {
function read() {
return "reading a pdf book.";
}
}
class MobiBook implements EBook {
function read() {
return "reading a mobi book.";
}
}
実装の使用は正常に機能しますが、Ebook を型として使用するクラス EBookReader の方法を模倣することはできません。
コードのモックアップを含む codepen: http://codepen.io/Ornhoj/pen/gLMELX?editors=0012