Hướng dẫn what are inheritance in php? - kế thừa trong php là gì?
Kế thừa là một trong bốn trụ cột của lập trình hướng đối tượng (OOPS). Di truyền là hiện tượng mà lớp con có thể kế thừa tất cả các thuộc tính và đặc điểm của lớp cha. & NBSP; Bạn có thể hiểu điều này với một ví dụ thực tế đơn giản. Hãy xem xét ví dụ về con người. Bạn thừa hưởng các đặc điểm đặc trưng từ lớp 'con người', chẳng hạn như đi bộ, ngồi, chạy, ăn uống, v.v ... Lớp 'con người' được thừa hưởng từ lớp 'Động vật có vú', các đặc điểm đặc trưng này - biến lớp 'con người' thành một lớp học có nguồn gốc từ 'Động vật có vú'. Hơn nữa, lớp ’động vật có vú có các tính năng đặc trưng của nó từ một lớp khác -‘ động vật. Điều này làm cho lớp học động vật có vú là một lớp có nguồn gốc của lớp ‘động vật; Cũng làm cho lớp học động vật & NBSP; một lớp cơ sở. Kế thừa trong PHP là một khái niệm OOPS quan trọng và không thể bỏ qua. Hiểu được kế thừa trong PHP là cần thiết để có được cái nhìn toàn diện về các khái niệm hướng đối tượng trong PHP. Kế thừa cung cấp cho bạn nhiều lợi ích làm cho chương trình PHP thuận tiện hơn rất nhiều. Một lợi ích như vậy là khả năng tái sử dụng mã. Khả năng tái sử dụng cho phép bạn tạo mã sạch và việc sao chép mã được giảm xuống gần như bằng không. Tái sử dụng các mã hiện tại phục vụ các lợi thế khác nhau. Nó tiết kiệm thời gian, chi phí, nỗ lực và tăng độ tin cậy của chương trình. Hơn nữa, chương trình trở nên trực quan. PHP cung cấp chủ yếu ba loại kế thừa dựa trên chức năng của chúng. Ba loại này như sau: Bài viết này sẽ thảo luận về tất cả các loại này một cách chi tiết, sau. Được mô tả dưới đây là cú pháp được sử dụng để mở rộng lớp cơ sở trong PHP. lớp DOIVED_CLASS_NAME mở rộng base_class_name { & nbsp; & nbsp; & nbsp; & nbsp; // xác định các chức năng thành viên của & nbsp; & nbsp; & nbsp; & nbsp; // lớp dẫn xuất ở đây. } Từ khóa mở rộng được sử dụng để xác định lớp dẫn xuất hoặc lớp con trong PHP. Trình sửa đổi truy cập (riêng tư, công khai hoặc được bảo vệ) được sử dụng trong định nghĩa của các chức năng thành viên và thành viên dữ liệu của lớp dẫn xuất chỉ định chế độ mà các tính năng của lớp cơ sở có nguồn gốc. Trình sửa đổi truy cập kiểm soát nơi và cách các thành viên dữ liệu và chức năng thành viên của một lớp cơ sở có thể được kế thừa bởi các lớp con. Các sửa đổi truy cập này được sử dụng để hạn chế truy cập lớp cơ sở từ lớp con để gói gọn dữ liệu. Điều này được gọi phổ biến là ẩn dữ liệu. & Nbsp; & nbsp; Trong PHP, có ba công cụ sửa đổi truy cập: & nbsp; Công cụ sửa đổi truy cập công khai cung cấp quyền riêng tư ít nhất cho các thuộc tính của lớp cơ sở. Nếu công cụ sửa đổi truy cập là công khai, điều đó có nghĩa là lớp dẫn xuất có thể truy cập vào các thành viên công khai và được bảo vệ của lớp cơ sở nhưng không phải là thành viên riêng của lớp cơ sở. & NBSP; Ví dụ sau đây cho thấy một lớp với các thành viên công cộng: lớp DOIVED_CLASS_NAME mở rộng base_class_name { & nbsp; & nbsp; // thành viên dữ liệu công cộng & nbsp; & nbsp; công khai $ var_name; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên công cộng & nbsp; & nbsp; hàm công khai_name () { & nbsp; & nbsp; & nbsp; & nbsp; // xác định chức năng ở đây } } Chương trình sau đây minh họa Trình sửa đổi truy cập công khai trong PHP: & nbsp; // Xác định lớp cơ sở Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; public $ price = "Chúng tôi có giá cố định là 100000"; & nbsp; & nbsp; & nbsp; & nbsp; function printMessage () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; function print () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; function print () { // Tạo đối tượng của // Lớp có nguồn gốc. $ obj = vòng cổ mới; $obj->printMessage(); $obj->print(); & nbsp; // gọi các chức năng echo $ obj-> giá; tiếng vang php_eol; lớp DOIVED_CLASS_NAME mở rộng base_class_name { ?> Công cụ sửa đổi quyền truy cập riêng cung cấp quyền riêng tư tối đa cho các thuộc tính của lớp cơ sở. Bạn có thể truy cập một thành viên dữ liệu được khai báo riêng hoặc chức năng thành viên chỉ trong lớp mà chúng được khai báo. Ví dụ sau đây cho thấy một lớp với các thành viên riêng: & nbsp; & nbsp; & nbsp; // thành viên dữ liệu riêng tư { & nbsp; & nbsp; & nbsp; & nbsp; // xác định chức năng ở đây } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; // Xác định lớp cơ sở Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; public $ price = "Chúng tôi có giá cố định là 100000"; & nbsp; & nbsp; & nbsp; & nbsp; function printMessage () { { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; function print () { { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; function print () { // Tạo đối tượng của // Lớp có nguồn gốc. $ obj = vòng cổ mới; $obj->show(); & nbsp; // gọi các chức năng $obj->printPrice(); & nbsp; // gọi các chức năng echo $ obj-> giá; tiếng vang php_eol; ?> lớp DOIVED_CLASS_NAME mở rộng base_class_name { Công cụ sửa đổi quyền truy cập riêng cung cấp quyền riêng tư tối đa cho các thuộc tính của lớp cơ sở. Bạn có thể truy cập một thành viên dữ liệu được khai báo riêng hoặc chức năng thành viên chỉ trong lớp mà chúng được khai báo. Ví dụ sau đây cho thấy một lớp với các thành viên riêng: & nbsp; & nbsp; & nbsp; // thành viên dữ liệu riêng tư & nbsp; & nbsp; riêng tư $ var_name; & nbsp; & nbsp; & nbsp; & nbsp; { & nbsp; & nbsp; & nbsp; & nbsp; // xác định chức năng ở đây } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất & nbsp; // Xác định lớp cơ sở Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; public $ price = "Chúng tôi có giá cố định là 100000"; & nbsp; & nbsp; & nbsp; & nbsp; function printMessage () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; { } & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; // & nbsp; Xác định các lớp dẫn xuất Vòng cổ lớp mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; function print () { { // Tạo đối tượng của // Lớp có nguồn gốc. & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } $ obj = vòng cổ mới; $ obj-> Total (); $obj->printInvoice(); ?>
Lớp trẻ với các phương pháp và thuộc tính riêng của nóTrong kế thừa, mục đích kế thừa các thuộc tính và thành viên của một lớp cơ sở bởi một lớp trẻ được đạt được rất tốt. Khi một lớp con được thừa hưởng từ một lớp cơ sở, nó có quyền truy cập trực tiếp vào tất cả các thành viên không riêng của lớp cơ sở. Và ngay cả các thành viên tư nhân có thể được truy cập gián tiếp. & Nbsp; Tuy nhiên, một lớp trẻ cũng có thể có các phương pháp và thuộc tính riêng. Ngoài các thành viên của lớp cơ sở, một lớp dẫn xuất có thể có nhiều thành viên dữ liệu và phương thức tùy thích. Một lớp dẫn xuất cũng giống như bất kỳ lớp nào khác, với lợi ích của việc có quyền truy cập vào một số phương pháp và thuộc tính khác của một lớp cơ sở. Đây là những gì thừa kế là tất cả về. & Nbsp; & nbsp; Chương trình sau đây minh họa một lớp trẻ có quyền truy cập vào các thuộc tính của lớp cơ sở cùng với các phương thức và thuộc tính của nó: // Xác định lớp cơ sở class base_ class { & nbsp; & nbsp; & nbsp; & nbsp; // Thành viên dữ liệu của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; công khai $ data_mem = 10; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai thành viên_func () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } // & nbsp; Xác định các lớp dẫn xuất lớp child_class mở rộng base_class {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp con & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {& nbsp; echo "Tôi là chức năng lớp con."; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } // & nbsp; Xác định các lớp dẫn xuất lớp child_class mở rộng base_class {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp con & nbsp; $obj->member_func(); & nbsp; & nbsp; & nbsp; & nbsp; {& nbsp; echo "Tôi là chức năng lớp con."; // Tạo đối tượng của ?>
Lớp trẻ với các phương pháp và thuộc tính riêng của nóTrong kế thừa, mục đích kế thừa các thuộc tính và thành viên của một lớp cơ sở bởi một lớp trẻ được đạt được rất tốt. Khi một lớp con được thừa hưởng từ một lớp cơ sở, nó có quyền truy cập trực tiếp vào tất cả các thành viên không riêng của lớp cơ sở. Và ngay cả các thành viên tư nhân có thể được truy cập gián tiếp. & Nbsp;
Chương trình sau đây minh họa một lớp trẻ có quyền truy cập vào các thuộc tính của lớp cơ sở cùng với các phương thức và thuộc tính của nó: The following program illustrates single level inheritance in PHP: // Xác định lớp cơ sở class base_ class { & nbsp; & nbsp; & nbsp; & nbsp; // Thành viên dữ liệu của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; công khai $ data_mem = 10; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp cơ sở } } & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai thành viên_func () & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; công khai $ data_mem = 10; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai thành viên_func () & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } // & nbsp; Xác định các lớp dẫn xuất lớp child_class mở rộng base_class {& nbsp; & nbsp; & nbsp; & nbsp; $f->printName('Ring'); $s->printName('Necklace'); ?>
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {& nbsp; echo "Tôi là chức năng lớp con."; // Xác định lớp cơ sở class base_ class { & nbsp; & nbsp; & nbsp; & nbsp; // Thành viên dữ liệu của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; công khai $ data_mem = 10; } } & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai thành viên_func () & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } // & nbsp; Xác định các lớp dẫn xuất lớp child_class mở rộng base_class {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên của lớp con & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Chi phí mặt dây chuyền: 600000'; } & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai pricelist () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. $ this-> TotalCost (). PHP_EOL; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. $ this-> vòng cổ (). PHP_EOL; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. $ this-> pendantcost (). PHP_EOL; } } // Tạo đối tượng của & nbsp; // Lớp học có nguồn gốc $ obj = mặt dây chuyền mới (); $obj->priceList(); ?>
Như tên cho thấy, kế thừa phân cấp cho thấy một cấu trúc giống như cây. Nhiều lớp dẫn xuất được kế thừa trực tiếp từ một lớp cơ sở. Trong loại kế thừa này, nhiều hơn một lớp có nguồn gốc chia sẻ cùng một lớp cha. Chương trình sau đây minh họa kế thừa phân cấp trong PHP: // Lớp cơ sở có tên là "Trang sức" Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; & nbsp; trang sức chức năng công cộng () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; PHP_EOL; & nbsp; } } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; // Tạo đối tượng của & nbsp; // Các lớp học có nguồn gốc ?>
Di truyền phân cấpNhư tên cho thấy, kế thừa phân cấp cho thấy một cấu trúc giống như cây. Nhiều lớp dẫn xuất được kế thừa trực tiếp từ một lớp cơ sở. Trong loại kế thừa này, nhiều hơn một lớp có nguồn gốc chia sẻ cùng một lớp cha. Chương trình sau đây minh họa kế thừa phân cấp trong PHP: // Lớp cơ sở có tên là "Trang sức" Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; & nbsp; trang sức chức năng công cộng () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; PHP_EOL; & nbsp; } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; // Tạo đối tượng của & nbsp; } } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; $obj->show(); // Tạo đối tượng của & nbsp; // Các lớp học có nguồn gốc ?> Di truyền phân cấp Như tên cho thấy, kế thừa phân cấp cho thấy một cấu trúc giống như cây. Nhiều lớp dẫn xuất được kế thừa trực tiếp từ một lớp cơ sở. Trong loại kế thừa này, nhiều hơn một lớp có nguồn gốc chia sẻ cùng một lớp cha. Chương trình sau đây minh họa kế thừa phân cấp trong PHP: // Lớp cơ sở có tên là "Trang sức" Đồ trang sức lớp { & nbsp; & nbsp; & nbsp; & nbsp; trang sức chức năng công cộng () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; PHP_EOL; & nbsp; } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; } } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; // Tạo đối tượng của & nbsp; // Các lớp học có nguồn gốc // "Vòng cổ" và "Vòng đeo tay" $this->display(); } } // lớp học có tên là "Vòng cổ" Vòng cổ lớp mở rộng trang sức {& nbsp; & nbsp; Vòng đeo tay lớp mở rộng trang sức {& nbsp; & nbsp; $obj->show(); ?>
Di truyền phân cấpNhư tên cho thấy, kế thừa phân cấp cho thấy một cấu trúc giống như cây. Nhiều lớp dẫn xuất được kế thừa trực tiếp từ một lớp cơ sở. Trong loại kế thừa này, nhiều hơn một lớp có nguồn gốc chia sẻ cùng một lớp cha. Chương trình sau đây minh họa khái niệm về phương thức ghi đè trong PHP: // Lớp cơ sở có tên là "Base_Class" class base_ class { & nbsp; & nbsp; & nbsp; & nbsp; // "Hiển thị" chức năng của lớp cơ sở & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai show () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; . PHP_EOL; & nbsp; } } & nbsp; // lớp có tên là "derive_class" lớp DOIVED_CLASS mở rộng base_class { & nbsp; & nbsp; & nbsp; // "Hiển thị" hàm của lớp dẫn xuất & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai show () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; . PHP_EOL; & nbsp; } } & nbsp; // lớp có tên là "derive_class" lớp DOIVED_CLASS mở rộng base_class { & nbsp; & nbsp; & nbsp; // "Hiển thị" hàm của lớp dẫn xuất & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL; $obj->show(); & nbsp; // tạo một đối tượng của lớp dẫn xuất
$ obj = new derive_class (); // sẽ gọi "Hiển thị" & nbsp;// Chức năng của lớp dẫn xuất ?>
Từ khóa cuối cùng trong PHP Cuối cùng là một từ khóa quan trọng trong các khái niệm OOPS trong PHP và được tìm thấy trong các ngôn ngữ lập trình khác nhau như Java, JavaScript, v.v. Tuy nhiên, từ khóa cuối cùng phục vụ các mục đích khác nhau trong các ngôn ngữ khác nhau. & NBSP; Trong PHP, từ khóa cuối cùng phục vụ các mục đích khác nhau tùy thuộc vào việc nó được sử dụng với một lớp hay phương thức. Từ khóa cuối cùng được sử dụng với một lớp: từ khóa cuối cùng với một lớp, phục vụ mục đích ngăn chặn sự kế thừa. Nếu một lớp được khai báo cuối cùng, sử dụng từ khóa cuối cùng, thì việc kế thừa lớp đó sẽ khiến chương trình đưa ra lỗi. Điều này có thể hữu ích trong trường hợp khi bạn không muốn một lớp học và các thành viên của nó được truy cập ở bất kỳ nơi nào khác trong chương trình. & NBSP; Chương trình sau đây minh họa khái niệm về từ khóa cuối cùng của người Viking với các lớp trong PHP: } Lưu ý: Mã này sẽ gây ra lỗi vì chúng tôi đang cố gắng kế thừa một lớp cuối cùng. & nbsp; & nbsp; & nbsp; lớp trang sức cuối cùng { } } & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function print () { } } & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $obj->show(); & nbsp; // tạo một đối tượng của lớp dẫn xuất
// sẽ gọi "Hiển thị" & nbsp; // Chức năng của lớp dẫn xuất ?> Trong chương trình ở trên, cả lớp cơ sở (tức là base_class) và lớp dẫn xuất (tức là derive_class) đều có chức năng gọi là show show. Nếu một thể hiện của lớp dẫn xuất gọi hàm show (), thì PHP sẽ gọi hàm show () của cuộc gọi dẫn xuất. Điều này là do DREUSIVED_CLASS ghi đè cho show () của base_class với phương thức show () của riêng nó. Nếu một thể hiện của lớp cơ sở sử dụng phương thức show (), thì sẽ không có sự ghi đè của phương thức. Từ khóa cuối cùng trong PHP } } Cuối cùng là một từ khóa quan trọng trong các khái niệm OOPS trong PHP và được tìm thấy trong các ngôn ngữ lập trình khác nhau như Java, JavaScript, v.v. Tuy nhiên, từ khóa cuối cùng phục vụ các mục đích khác nhau trong các ngôn ngữ khác nhau. & NBSP; Trong chương trình ở trên, cả lớp cơ sở (tức là base_class) và lớp dẫn xuất (tức là derive_class) đều có chức năng gọi là show show. Nếu một thể hiện của lớp dẫn xuất gọi hàm show (), thì PHP sẽ gọi hàm show () của cuộc gọi dẫn xuất. Điều này là do DREUSIVED_CLASS ghi đè cho show () của base_class với phương thức show () của riêng nó. Nếu một thể hiện của lớp cơ sở sử dụng phương thức show (), thì sẽ không có sự ghi đè của phương thức. Từ khóa cuối cùng trong PHP } } Cuối cùng là một từ khóa quan trọng trong các khái niệm OOPS trong PHP và được tìm thấy trong các ngôn ngữ lập trình khác nhau như Java, JavaScript, v.v. Tuy nhiên, từ khóa cuối cùng phục vụ các mục đích khác nhau trong các ngôn ngữ khác nhau. & NBSP; Trong PHP, từ khóa cuối cùng phục vụ các mục đích khác nhau tùy thuộc vào việc nó được sử dụng với một lớp hay phương thức. & nbsp; // tạo một đối tượng của lớp dẫn xuất $ obj = new derive_class (); ?> Trong chương trình ở trên, cả lớp cơ sở (tức là base_class) và lớp dẫn xuất (tức là derive_class) đều có chức năng gọi là show show. Nếu một thể hiện của lớp dẫn xuất gọi hàm show (), thì PHP sẽ gọi hàm show () của cuộc gọi dẫn xuất. Điều này là do DREUSIVED_CLASS ghi đè cho show () của base_class với phương thức show () của riêng nó. Nếu một thể hiện của lớp cơ sở sử dụng phương thức show (), thì sẽ không có sự ghi đè của phương thức. Từ khóa cuối cùng trong PHP } } & nbsp; & nbsp; & nbsp; lớp TestClass mở rộng đồ trang sức { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function printMessage () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } & nbsp; & nbsp; & nbsp; $ ob = new testClass; $ob->printMessage(); ?> Nhiều kế thừa trong PHP bằng cách sử dụng các đặc điểm hoặc giao diệnNhiều kế thừa là một loại kế thừa trong đó một lớp có thể kế thừa các thuộc tính từ nhiều lớp cha mẹ. Trong loại kế thừa này, có một lớp có nguồn gốc, có nguồn gốc từ nhiều lớp cơ sở. Đây là một trong những khái niệm quan trọng và hữu ích nhất được cung cấp trong mô hình hướng đối tượng và phục vụ mục đích trong đó bạn muốn một lớp kế thừa các loại thuộc tính khác nhau (nằm trong các lớp khác nhau). & NBSP; Ví dụ, hãy xem xét một lớp gọi là vẹt. Bây giờ, vì một con vẹt là một con chim, và nó cũng có thể là một con vật cưng hoặc đơn giản là một sinh vật sống, vì vậy, con vẹt lớp có thể phục vụ các thuộc tính khác nhau. Vì vậy, & nbsp; Sử dụng nhiều kế thừa, lớp vẹt có thể kế thừa các thuộc tính của cả ba lớp Bird, PET và Living_creature. Nhiều ngôn ngữ lập trình không hỗ trợ nhiều kế thừa trực tiếp như Java và PHP. Tuy nhiên, PHP cung cấp một số cách để thực hiện nhiều kế thừa trong các chương trình của bạn. Trong ngôn ngữ lập trình PHP, nhiều kế thừa đạt được bằng cách sử dụng hai cách:
Các đặc điểm được sử dụng để giảm độ phức tạp của một chương trình bằng cách viết các chức năng nhất quán có thể được sử dụng bởi các lớp khác trong chương trình. Một đặc điểm giống như một lớp, nó có thể có các chức năng cũng như các phương thức trừu tượng. Các chức năng được xác định trong một đặc điểm có thể được truy cập bởi các lớp khác trong chương trình PHP. & NBSP; Các đặc điểm có thể được sử dụng để thực hiện khái niệm nhiều kế thừa trong PHP. & NBSP; Cú pháp lớp DOIVED_CLASS_NAME mở rộng base_class_name { & nbsp; & nbsp; & nbsp; & nbsp; sử dụng Trait_name; & nbsp; // "Sử dụng từ khóa" để sử dụng một đặc điểm ... ... & nbsp; & nbsp; & nbsp; & nbsp; // base_class chức năng } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; // khai báo một lớp lớp chim { & nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng công khai () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; trait Pet { // khai báo một lớp lớp chim { } } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; class Parrot extends Bird { // khai báo một lớp lớp chim { & nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng công khai () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } // khai báo một đặc điểm Đặc điểm thú cưng { $test->display(); $test->show(); $test->msg(); ?>
Nhiều kế thừa trong PHP bằng cách sử dụng các đặc điểm hoặc giao diện Nhiều kế thừa là một loại kế thừa trong đó một lớp có thể kế thừa các thuộc tính từ nhiều lớp cha mẹ. Trong loại kế thừa này, có một lớp có nguồn gốc, có nguồn gốc từ nhiều lớp cơ sở. Đây là một trong những khái niệm quan trọng và hữu ích nhất được cung cấp trong mô hình hướng đối tượng và phục vụ mục đích trong đó bạn muốn một lớp kế thừa các loại thuộc tính khác nhau (nằm trong các lớp khác nhau). & NBSP; Cú pháp lớp DOIVED_CLASS_NAME mở rộng base_class_name { & nbsp; & nbsp; & nbsp; & nbsp; sử dụng Trait_name; & nbsp; // "Sử dụng từ khóa" để sử dụng một đặc điểm & nbsp; & nbsp; & nbsp; & nbsp; // base_class chức năng } // khai báo một lớp lớp chim { & nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng công khai () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; interface Pet { // khai báo một lớp } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; // inherited from Bird class // khai báo một lớp lớp chim { & nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng công khai () { & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } // khai báo một đặc điểm Đặc điểm thú cưng { } } Chương trình sau đây minh họa việc sử dụng các đặc điểm để thực hiện nhiều kế thừa: & nbsp; $obj = new Parrot(); // khai báo một lớp $obj->insidePet(); $obj->insideParrot(); ?> lớp chim {& nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng công khai () {
Bạn có phải là nhà phát triển web hoặc quan tâm đến việc xây dựng một trang web? Ghi danh cho & nbsp; Nhà phát triển web Stack Full - có nghĩa là chương trình của Stack Master. Khám phá xem trước khóa học! Gói lên!Trong bài viết này, bạn đã học về kế thừa trong PHP. Bạn đã khám phá PHP và các khái niệm hướng đối tượng của nó theo chiều sâu. Bạn đã lao sâu vào việc sử dụng, loại, chế độ và tất cả các khái niệm quan trọng khác về thừa kế. Bài viết này đã thảo luận chi tiết một số khái niệm liên quan khác như từ khóa cuối cùng, ghi đè phương thức, sửa đổi truy cập, v.v. Để bắt đầu với PHP khi mới bắt đầu, bạn có thể tham khảo video này. Tham gia khóa đào tạo PHP trực tuyến của chúng tôi để học PHP và xây dựng các ứng dụng năng động được hướng dẫn bởi các chuyên gia trong ngành. Nếu bạn là một chuyên gia PHP, bạn có thể đăng ký đào tạo phát triển PHP nâng cao của chúng tôi để lên Upskill. Điều này sẽ cho phép bạn học các khái niệm PHP nâng cao như phiên, cookie, v.v. Don Chỉ cần dừng lại ở đây. Để tìm hiểu sự phát triển của Stack và để cho mình cơ hội làm việc cho các đại gia công nghệ hàng đầu, hãy xem khóa học của chúng tôi trên nhà phát triển web Stack Full Stack - có nghĩa là Stack. Trong khóa học này, bạn sẽ học được một số kỹ năng nóng nhất như Node, Mongo, v.v. sẽ giúp bạn đặt chân vào phát triển web chuyên nghiệp. Để có được một danh sách đầy đủ các khóa học miễn phí được cung cấp bởi SimpleLearn, hãy truy cập các khóa học miễn phí. Nếu bạn có bất kỳ câu hỏi nào cho chúng tôi, xin vui lòng đề cập đến chúng trong phần bình luận và chúng tôi sẽ yêu cầu các chuyên gia của chúng tôi trả lời chúng cho bạn. Học hỏi! Kế thừa trong PHP và loại là gì?Kế thừa có ba loại, thừa kế đơn, đa và đa cấp. PHP chỉ hỗ trợ thừa kế đơn, trong đó chỉ có một lớp có thể được lấy từ lớp cha đơn. Chúng ta có thể mô phỏng nhiều kế thừa bằng cách sử dụng các giao diện.single, multiple and multilevel Inheritance. PHP supports only single inheritance, where only one class can be derived from single parent class. We can simulate multiple inheritance by using interfaces.
Kế thừa và loại của nó là gì?Có nhiều loại di truyền khác nhau viz., Di truyền đơn, thừa kế, thừa kế đa cấp, thừa kế lai và kế thừa phân cấp. Di truyền đơn: Khi một lớp dẫn xuất chỉ di truyền từ một lớp cơ sở, nó được gọi là kế thừa đơn lẻ.Single inheritance, Multiple inheritance, Multilevel inheritance, hybrid inheritance, and hierarchical inheritance. Single Inheritance: When a derived class inherits only from one base class, it is known as single inheritance.
Tại sao chúng ta cần thừa kế trong PHP?Kế thừa cho phép chúng tôi chỉ viết mã một lần vào cha mẹ, sau đó sử dụng mã trong cả hai lớp cha và con.Lớp con có thể sử dụng tất cả các phương pháp và thuộc tính không riêng tư mà nó kế thừa từ lớp cha.allows us to write the code only once in the parent, and then use the code in both the parent and the child classes. The child class can make use of all the non-private methods and properties that it inherits from the parent class.
Di sản giải thích là gì?Di truyền là quá trình mà thông tin di truyền được truyền từ cha mẹ sang con.Đây là lý do tại sao các thành viên của cùng một gia đình có xu hướng có những đặc điểm tương tự.the process by which genetic information is passed on from parent to child. This is why members of the same family tend to have similar characteristics. |