Nadszedł w końcu czas na naukę OOP. Niemal na samym starcie mam małą zagwozdkę...
Kod wygląda następująco:
class Samochod
{
public $marka;
public $model;
private $zbiornik = 50;
public function __construct($marka, $model)
{
$this->marka = $marka;
$this->model = $model;
}
public function setZbiornik($zbiornik)
{
$this->zbiornik = intval($zbiornik);
}
public function getZbiornik(): int
{
return $this->zbiornik;
}
}
class Osobowka extends Samochod
{
public $liczba_miejsc;
}
$sam = new Osobowka('opel', 'astra');
$sam->liczba_miejsc = 5;
Natomiast wykonanie funkcji
var_dump($sam);
Zwraca
object(Osobowka)[1]
public 'liczba_miejsc' => int 5
public 'marka' => string 'opel' (length=4)
public 'model' => string 'astra' (length=5)
private 'zbiornik' (Samochod) => int 50
Zgodnie z tym co wyczytałem w tutorialach pole zbiornik
nie powinno być widoczne w klasie Osobowka
. Dlaczego?
//Testowane w wersji PHP 7.3.3