私は次のシナリオを持っている:PHP抽象クラスとインタフェース
abstract class Contractor {
// Generic contractor methods...
}
abstract class PrivatePerson extends Contractor {
// Adds methods specific to private contractors
}
abstract class Company extends Contractor {
// Adds methods specific to Company contractors
}
class CustomerPrivate extends PrivatePerson {
// Customers that are contractors, but physical persons
}
class CustomerCompany extends Company {
// Customers that are contractors, but companies
}
と同じことが、民間人や企業することができサプライヤー・販売店、で発生します。ここでの問題は、CustomerPrivateクラスとCustomerCompanyのオブジェクトを、同時にCustomerクラス(私がまだ定義していないクラス)と同じサプライヤとディーラーに強制する方法です。このような場合にインターフェイスを使用するのは良い習慣ですか?
interface Customer {
}
class PrivateCustomer extends PrivatePerson implements Customer {
// Customers that are physical persons, but are CUSTOMERS!
}
ありがとうございました!
しかし、クラスCustomerPrivateのオブジェクトは、どのように同時に顧客のインスタンスになることができますか?顧客クラスをどのように定義する必要がありますか? – mlattari
ありがとうございました!あなたは私をたくさん助けました。 – mlattari
私は形質で試しましたが、問題によって部分的に解決します。私はオブジェクトの特性のプロパティとメソッドを使用することができますが、オブジェクトは特性のインスタンスではありません....インターフェイスと私は逆の状況があります;-) – mlattari