我對PHP OOP和類型提示有奇怪的問題。這裏有一個例子:PHP OOP「實現必須兼容」
abstract class AC {}
class C extends AC {}
interface I {
function method(AC $abstract);
}
class InterfaceImplementation implements I {
function method(C $concrete) {}
}
此代碼將無法運行,說method
不與接口聲明兼容。我認爲它是兼容的,因爲C擴展AC - 我想念什麼?我如何期望實現這種功能?
我不同意這是兼容的,你的'接口I'表示一個契約'方法'接受_any_'AC',而不僅僅是'C' ......我會同意'InterfaceImplementation'事實上不是實施'我'。 – Wrikken 2012-01-14 14:37:28