我有以下情形: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