Với mục đúng những bài viết ngắn ngọn nhưng xúc tích mình muốn khi các bạn đọc xong là các bạn sẽ hiểu ngay được vấn đề cốt lói của nó là gì? Do vậy ở nhưng bài viết mình luôn tổng hợp và đi sâu vào những ý chính sẽ giúp các bạn dễ hiểu hơn. Sau đây chúng ta bắt đầu đi tìm hiểu hai phương thức trên nhé.
1. Nạp Chồng(Overloading)
Việc khai báo trong một lớp nhiều phương thức có cùng tên nhưng khác tham số (khác kiểu dữ liệu, khác số lượng tham số) gọi là khai báo chồng phương thức (overloading method). Hay ngắn ngọn theo từng ý như phía dưới để các bạn dễ hiểu hơn.
- Các phương thức nằm trong cùng 1 lớp , có cùng tên với nhau nhưng có danh sách đối số khác nhau được gọi là các phương thức nạp chồng.
- Hàm tạo cũng có thể được nạp chồng.
- Tùy theo ta gọi đối số thế nào mà nó sẽ gọi hàm tương ứng.
- Nạp chồng là hình thức đa hình (polymorphism) trong quá trình biên dịch (compile time).
Overloading method dùng làm gì?, ta xét bài tập nhỏ: Tính diện tích hình vuông, tính diện tích hình hình chữ nhật, tính diện tích hình tam giác. (Mình sẽ đưa ra cách gợi ý các bạn sẽ tự code nhé)
- Ta sẽ tạo ra 3 phương thức đều tên là dienTich sao cho, nếu như
- Có 1 tham số truyền vào, nó sẽ tự hiểu là cần tính diện tích hình vuông
- Có 2 tham số truyền vào, nó tự hiểu là tính diện tích hình chữ nhật
- Có 3 tham số truyền vào, nó tự hiểu là tính diện tích hình tam giác.
Trong PHP, nếu như người lập trình tạo ra một phương thức trong lớp con có trùng tên với một phương thức đã được tạo ở lớp cha thì đó được gọi là ghi đè phương thức(Method Overriding). Hoặc một cách dễ hiểu hơn như sau.
- Là Phương thức đã xuất hiện ở lớp cha và xuất hiện tiếp ở lớp con.
- Khi đối tượng thuộc lớp con gọi phương thức thì sẽ chọn lựa và chạy theo phương thức trong lớp con.
- Nếu lớp con không có phương thức đó thì mới lên kiếm ở lớp cha để chạy
- Ghi đè là hình thức đa hình (polymorphism) trong quá trình thực thi (Runtime)
<?phpNhư vậy ở bài này mình đã giới thiệu đến các bạn hai khái niệm cơ bản và rất quan trọng trong lập trình hướng đối tượng nói chung và trong PHP nói riêng. Chúc các bạn thành công!
class testParent{
public function f1(){
echo 1;
}
public function f2(){
echo 2;
}
}
class testChild extends testParent{
function f2($a) //Overriding function f2{
echo $a;
}
}
$a = new testChild();
$a->f2("Hello You.");//It will print Hello You
?>
Trích dẫn theo: Học Lập Trình PHP
0 nhận xét:
Đăng nhận xét