kode
never knows best
а я разве говорил что их нельзя использовать вместе?
-~{}~ 30.05.08 13:50:
абстрактный класс нужен если нужно что-то получать от потомков (например получить год выпуска), те:
хотя можно было просто передать год производства через конструктор
-~{}~ 30.05.08 13:50:
алсо, для группировки по реализации не обязательно использовать абстрактные классы, например:Я, например, использую и интерфейс и абстрактный класс, так как классы, реализующий общий интерфейс, могут группироваться по реализации. Вот и получается, классы реализующие общий интерфейс, наследуются от разных абстрактных классов. Так что комбинации бывают самые разные.
PHP:
interface Car {
public function startEngine();
public function stopEngine();
}
class PetrolEngine {
}
class DieselEngine {
}
class FordFocus extends PetrolEngine implements Car {
}
class OpelCorsa extends DieselEngine implements Car {
}
PHP:
abstract class PetrolEngine {
protected $lastCapitalRepair;
public function isNeedCapitalRepair(){
return ($lastCapitalRepair+5 < $this->getProductionYear());
}
abstract public function getProductionYear();
}
class FordFocus extends PetrolEngine implements Car {
protected $buildYear;
public function getProductionYear(){
return $this->buildYear;
}
}
