⊗ppOpFnMt 64 of 107 menu

Phương thức trừu tượng trong OOP PHP

Các lớp trừu tượng cũng có thể chứa các phương thức trừu tượng. Các phương thức như vậy không nên có phần thân triển khai, mà cần để chỉ ra rằng các phương thức như vậy phải có trong các lớp con. Và chính việc triển khai các phương thức đó - là nhiệm vụ của các lớp con.

Để khai báo một phương thức là trừu tượng, khi khai báo nó, hãy viết từ khóa abstract.

Hãy thử thực hành. Giả sử rằng tất cả các lớp con của lớp User phải có phương thức increaseRevenue.

Phương thức này phải lấy thu nhập hiện tại của người dùng và tăng nó lên một giá trị nào đó, được truyền qua tham số.

Bản thân lớp User không biết chính xác thu nhập nào sẽ được lớp con nhận - bởi vì đối với nhân viên đó là lương, còn đối với sinh viên - đó là học bổng. Do đó mỗi lớp con sẽ triển khai phương thức này theo cách riêng của nó.

Điểm mấu chốt ở đây là phương thức trừu tượng của lớp User buộc lập trình viên phải triển khai phương thức này trong các lớp con, nếu không PHP sẽ báo lỗi. Bằng cách này, bạn, hoặc một lập trình viên khác, làm việc với mã của bạn, sẽ không thể nào quên triển khai phương thức cần thiết trong lớp con.

Vậy, hãy thử thực hành. Thêm phương thức trừu tượng increaseRevenue vào lớp User:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } // Phương thức trừu tượng không có thân: abstract public function increaseRevenue($value); } ?>

Giả sử lớp Employee của chúng ta tạm thời giữ nguyên không thay đổi. Trong trường hợp này, ngay cả khi không tạo đối tượng của lớp Employee, mà chỉ chạy mã định nghĩa các lớp của chúng ta, - PHP sẽ báo lỗi.

Bây giờ hãy viết phần triển khai của phương thức increaseRevenue trong lớp Employee:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } // Viết triển khai phương thức: public function increaseRevenue($value) { $this->salary = $this->salary + $value; } } ?>

Hãy kiểm tra hoạt động của lớp chúng ta:

<?php $employee = new Employee; $employee->setName('john'); $employee->setSalary(1000); $employee->increaseRevenue(100); echo $employee->getSalary(); ?>

Triển khai phương thức increaseRevenue và trong lớp Student. Chỉ có điều bây giờ phương thức của chúng ta sẽ tăng học bổng:

<?php class Student extends User { private $scholarship; // học bổng public function getScholarship() { return $this->scholarship; } public function setScholarship($scholarship) { $this->scholarship = $scholarship; } // Phương thức tăng học bổng: public function increaseRevenue($value) { $this->scholarship = $this->scholarship + $value; } } ?>

Thêm vào lớp User của bạn một phương thức trừu tượng tương tự increaseRevenue. Viết phần triển khai của phương thức này trong các lớp EmployeeStudent.

Trong lớp Figure, hãy tạo các phương thức trừu tượng để lấy diện tích và chu vi của hình.

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