Cách kế thừa một lớp trong lập trình hướng đối tượng PHP
Khái niệm kế thừa là gì ?
- Đối với lập trình hướng đối tượng trong PHP, khái niệm “kế thừa” dùng để ám chỉ việc một lớp được dẫn xuất từ một lớp khác.
- Lớp được dẫn xuất từ lớp khác thì được gọi là “lớp con”, nó sẽ thừa hưởng tất cả các thuộc tính và phương thức [thuộc loại public & protected] của lớp cha, ngoài ra thì lớp con có thể sở hữu các thuộc tính & phương thức của riêng nó.
- Một lớp con sẽ được khai báo bằng từ khóa extends với cú pháp như sau:extends với cú pháp như sau:
class TênLớpCon extends TênLớpCha{
//some code
}
- Lớp SinhViên được kế thừa từ lớp CôngDân, cho nên nó sẽ thừa hưởng các thuộc tính & phương thức từ lớp CôngDân. Ngoài ra, lớp SinhViên còn có một phương thức riêng là message[].
Phạm vi truy cập protected
- Ở bài học trước thì tôi đã có giới thiệu sơ qua ba từ khóa public - protected - private dùng để xác định phạm vi truy cập của các thuộc tính & phương thức. Trong đó, public và private đã được giải thích chi tiết thông qua các ví dụ, còn riêng protected thì chưa [bởi vì trong bài đó các bạn chưa biết khái niệm kế thừa]
- Cho nên, trong phần này tôi sẽ làm sơ qua hai ví dụ để các bạn hiểu rõ hơn về phạm vi truy cập protected.
Ghi đè phương thức
- Các phương thức được kế thừa từ lớp cha có thể được ghi đè bằng cách khai báo lại bên trong lớp con.
Từ khóa final
- Từ khóa final dùng để ngăn chặn việc kế thừa lớp, hoặc ngăn chặn việc ghi đè lên phương thức.
- Không lớp nào có thể kế thừa lớp CongDan [việc định nghĩa lớp SinhVien kế thừa lớp CongDan sẽ xảy ra lỗi]
- Phương thức intro[] sẽ không thể bị ghi đè bên trong các lớp con.