⊗ppOpIhCn 30 of 107 menu

Constructor khi kế thừa trong OOP PHP

Khi kế thừa, bạn có thể ghi đè constructor của lớp cha. Hãy xem ví dụ. Giả sử chúng ta có lớp cha sau:

<?php class User { private $name; private $surn; public function __construct($name, $surn) { $this->name = $name; $this->surn = $surn; } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Giả sử lớp sau kế thừa từ lớp cha:

<?php class Student extends User { } ?>

Giả sử chúng ta muốn mở rộng constructor trong lớp con, thêm vào nó các tham số bổ sung:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { } } ?>

Trong trường hợp này, chúng ta bắt buộc phải gọi constructor của lớp cha trong dòng đầu tiên thông qua parent::__construct():

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Lệnh parent::__construct() về bản chất là constructor của lớp cha. Vì vậy hãy truyền các tham số cần thiết vào nó:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Bây giờ trong lớp con, hãy ghi năm học vào thuộc tính riêng của lớp con:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } } ?>

Hãy tạo getter cho năm học:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } public function getYear() { return $this->year; } } ?>

Giả sử lớp Employee kế thừa từ lớp User trong bài học này.

Hãy ghi đè trong lớp Employee constructor của lớp cha, thêm vào nó tham số về tuổi và lương.

Hãy tạo getter cho tuổi và lương.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối