У меня есть этот класс:
abstract class Hotel
{
protected $util;
function __construct()
{
$this->util = new Utility();
}
function add(Validate $data, Model_Hotel $hotel){}
function delete(){}
function upload_image(array $imagedetails, $hotel_id){}
}
и класс, расширяющий его
class Premium extends Hotel
{
function add(Model_Hotel $hotel)
{
$hotel->values;
$hotel->save();
}
function upload_image(array $imagedetails, $hotel_id)
{
$this->util->save_image($imagedetails, $hotel_id);
}
}
но тогда я получаю ошибку:
"объявление Premium :: add должно быть совместимо с Hotel :: add"
как видите, я пропустил параметр для метода add (), который был преднамеренным
какое средство ООП позволило бы мне наследовать функцию, параметры которой я могу изменить? (Очевидно, что абстрактный класс здесь не подходит)