#php #oop #inheritance
Вопрос:
я работал над чем-то еще, немного похожим на эту проблему. то, что я пытаюсь сделать, — это создать класс с частными свойствами (или что-то еще, не знаю, как это назвать) и хранить в частном порядке в классе, а затем создать наследование, подобное этому:
(я хочу уточнить свое объяснение подробнее, но мой вокабуляр в программировании очень ограничен)
lt;?php class Fruit { private $name; private $color; public function patients($name, $color) { $this-gt;name = $name; $this-gt;color = $color; } public function intro() { echo "The fruit is {$this-gt;name} and the color is {$this-gt;color}."; } } // Strawberry is inherited from Fruit class Strawberry extends Fruit { public function message() { echo $this-gt;intro(); } } $strawberry = new Strawberry("Strawberry", "red"); $strawberry-gt;message(); ?gt;
Ответ №1:
Да, ты можешь. Вы должны использовать методы, которые вы объявили, а не использовать конструктор ( new Strawberry("Strawberry", "red");
), если вы его не настроили и не хотите его использовать):
lt;?php class Fruit { private $name; private $color; public function describe($name, $color) { $this-gt;name = $name; $this-gt;color = $color; } public function intro() { echo "The fruit is {$this-gt;name} and the color is {$this-gt;color}."; } } // Strawberry is inherited from Fruit class Strawberry extends Fruit { public function message() { echo $this-gt;intro(); } }
Переименовал свой метод patients()
describe()
, чтобы он был более подходящим. Удалил ваш метод assignPatient()
, так как вы его не использовали, и он в основном делал то же самое, что describe()
и делает. Теперь вы можете использовать
$strawberry = new Strawberry(); $strawberry-gt;describe("Strawberry", "red"); $strawberry-gt;message();
чтобы вывести «Плод-клубника, а цвет-красный»..
На самом деле вы могли бы также удалить свой message()
метод и intro()
вместо этого позвонить:
$strawberry = new Strawberry(); $strawberry-gt;describe("Strawberry", "red"); $strawberry-gt;intro();
Комментарии:
1. большое вам спасибо, я кое-чему у вас научился