Tính chất của OOP, OverRide và OverLoad

OOP có 4 tính chất:

Tính trừu tượng: đơn giản hóa đối tượng, chỉ bao gồm những đặc điểm quan tâm và bỏ qua những đặc điểm chi tiết nhỏ, giúp xác định những thuộc tính hoặc phương thức cần thiết.

Cú pháp: abstract class NameClass{}

Khai báo phương thức: abstract visibility function methodName();

visibility là public hoặc protected

Khi tạo 1 class kế thừa class có abstract, sẽ cần định nghĩa lại phương thức abstract

VD: abstract class Person{

protected $name;

abstract protected function getName();

}

class Student extends Person{

public function getName(){

return this->name;}

Tính kế thừa: 1 lớp có thể kế thừa các thuộc tính và phương thức (sử dụng lại) của lớp khác

Cú pháp: class ChildClass extends ParentClass{}

Tính đóng gói: phân quyền cho lớp, kiểm soát được thuộc tính đầu vào

Sử dụng thông qua public (có thể truy xuất ở mọi nơi), private (chỉ truy xuất trong lớp), protected (truy xuất trong lớp hoặc từ lớp con kế thừa)

Tính đa hình: sau khi kế thừa thì lớp con sẽ viết lại các phương thức của lớp cha (overwrite)

Phân biệt Overriding và Overloading?

Overriding giúp cho lớp con có thể ghi đè phương thức của lớp cha

Khi ghi đè thì tham số phải trùng, kiểu giá trị phải tương thích.

Cách dùng: gọi lại phương thức lớp cha và khởi tạo lại phương thức.

Overloading là nạp chồng phương thức đơn giản là có vài phương thức trùng tên nhưng khác nhau về đối số trong cùng 1 class, dùng để thu được tính đa hình của lớp

Cách dùng:

– Thay đổi số lượng tham số

– Thay đổi kiểu trả về của tham số

Override Overload
Hành vi Thay đổi hành vi hiện tại của phương thức. Thêm hoặc mở rộng cho hành vi của phương thức.
Đa hình Thể hiện tính đa hình tại run time. Thể hiện tính đa hình tại compile time.
Danh sách tham số Danh sách tham số phải giống nhau. Danh sách tham số có thể khác nhau.
Quyền truy cập Phương thức ghi đè ở lớp con phải có quyền truy cập bằng hoặc lớn hơn phương thức được ghi đè ở lớp cha. Các phương thức nạp chồng có thể có quyền truy cập khác nhau.
Giá trị trả về Kiểu trả về bắt buộc phải giống nhau. Kiểu trả về có thể khác nhau.
Phạm vi Xảy ra giữa 2 class có quan hệ kế thừa Xảy ra trong phạm vi cùng 1 class.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook