Hướng dẫn inheritance php - thừa kế php

Đó là một khái niệm truy cập vào các tính năng của một lớp từ một lớp khác. Nếu chúng ta kế thừa các tính năng lớp vào một lớp khác, chúng ta có thể truy cập cả hai thuộc tính lớp. Chúng tôi có thể mở rộng các tính năng của một lớp bằng cách sử dụng từ khóa 'mở rộng'.

Show

Nội phân Chính showShow

  • Thừa kế là gì?
  • Kế thừa trong PHP
  • Cú pháp để kế thừa một lớp trong PHP
  • Truy cập các sửa đổi trong PHP
  • Lớp trẻ với các phương pháp và thuộc tính riêng của nó
  • Các loại kế thừa trong PHP
  • Thừa kế duy nhất
  • Thừa kế đa cấp
  • Di truyền phân cấp
  • Công cụ sửa đổi truy cập được bảo vệ trong PHP
  • Ghi đè các phương pháp di truyền trong PHP
  • Từ khóa cuối cùng trong PHP
  • Nhiều kế thừa trong PHP bằng cách sử dụng các đặc điểm hoặc giao diện
  • Interfaces:
  • Tầm quan trọng của việc thừa kế trong PHP
  • Gói lên!
  • Kế thừa và các loại của nó trong PHP là gì?
  • Việc thừa kế trong PHP là gì?
  • Kế thừa & loại của nó là gì?
  • 4 loại kế thừa là gì?

Nội phân chính

  • Giúp đỡ người khác, xin vui lòng chia sẻ
  • Thừa kế là gì?
  • Kế thừa trong PHP
  • Cú pháp để kế thừa một lớp trong PHP
  • Truy cập các sửa đổi trong PHP
  • Lớp trẻ với các phương pháp và thuộc tính riêng của nó
  • Các loại kế thừa trong PHP
  • Thừa kế duy nhất
  • Thừa kế đa cấp
  • Di truyền phân cấp
  • Công cụ sửa đổi truy cập được bảo vệ trong PHP
  • Ghi đè các phương pháp di truyền trong PHP
  • Từ khóa cuối cùng trong PHP
  • Nhiều kế thừa trong PHP bằng cách sử dụng các đặc điểm hoặc giao diện
  • Interfaces:
  • Tầm quan trọng của việc thừa kế trong PHP
  • Gói lên!
  • Kế thừa và các loại của nó trong PHP là gì?
  • Việc thừa kế trong PHP là gì?
  • Kế thừa & loại của nó là gì?
  • 4 loại kế thừa là gì?
  • Nội phân chínhhierarchical classification.
  • Giúp đỡ người khác, xin vui lòng chia sẻsingle, multiple and multilevel Inheritance.
  • Kế thừa & loại của nó là gì? supports only single inheritance, where only one class can be derived from single parent class.
  • Nó hỗ trợ khái niệm phân loại phân cấp.interfaces.

Kế thừa có ba loại, thừa kế đơn, đa và đa cấp.

Output:

Hướng dẫn inheritance php - thừa kế php

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.

Output:



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.

ví dụ 1

  • Ví dụ 2





Thừa kế là gì?

Đối với video, hãy tham gia kênh YouTube của chúng tôi: Tham gia ngay

Nhận xét

Kế thừa trong PHP

Gửi phản hồi của bạn đến [Email & NBSP; được bảo vệ]

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. 'Độ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:

Di truyền đơn: thừa kế đơn là loại kế thừa cơ bản hoặc cơ bản nhất được cung cấp bởi PHP. Chỉ có một lớp cơ sở và một lớp phụ/có nguồn gốc trong một kế thừa duy nhất và lớp con được kế thừa trực tiếp từ lớp cơ sở.

Cú pháp để kế thừa một lớp trong PHP

Di truyền phân cấp: Như tên cho thấy, kế thừa phân cấp áp dụng một cấu trúc giống như cây, trong đó nhiều lớp dẫn xuất được kế thừa từ lớp cơ sở.

Di truyền đa cấp: Di truyền đa cấp là loại kế thừa thứ ba được hỗ trợ trong PHP. Nó xảy ra ở các cấp độ khác nhau. Ở đây, một lớp cơ sở được thừa hưởng bởi một lớp dẫn xuất, sau đó lớp dẫn xuất đó được kế thừa bởi các lớp dẫn xuất khác, v.v.

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.
  • Base_Class_Name: Nó chỉ định tên của cơ sở hoặc lớp cha mà lớp con đang thừa hưởng các thuộc tính của nó. Một lớp cơ sở còn được gọi là lớp cha vì tất cả các lớp được gọi là các lớp dẫn xuất hoặc các lớp con kế thừa các thuộc tính của chúng từ lớp cơ sở. Có thể có một hoặc nhiều lớp cơ sở trong một chương trình, tùy thuộc vào loại kế thừa. Chẳng hạn, trong một kế thừa cấp độ, sẽ có một lớp cơ sở cho một lớp trẻ, nhưng trong một kế thừa đa cấp, một lớp con có thể thừa hưởng từ một lớp cơ sở ở nhiều cấp độ.

Truy cập các sửa đổi 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;

  • Public:

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

  • Private:

echo $ obj-> giá;

tiếng vang php_eol;

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

  }

}

& 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; & 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á;

  • Protected:

tiếng vang php_eol;

Ví dụ sau đây cho thấy một lớp với các thành viên được bảo vệ: & nbsp;

lớp DOIVED_CLASS_NAME mở rộng base_class_name

{

& nbsp; & nbsp; // thành viên dữ liệu được bảo vệ

& nbsp; & nbsp; được bảo vệ $ var_name; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; // chức năng thành viên được bảo vệ

& nbsp; & nbsp; function function_name () được bảo vệ ()

  {

& 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 bảo vệ trong PHP:

// Xác định lớp cơ sở

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

& nbsp; & nbsp; & nbsp; & nbsp; tổng số chức năng ()

    {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp;} & nbsp; & nbsp; & nbsp;

}

Chương trình sau đây minh họa Trình sửa đổi truy cập được bảo vệ trong PHP:

class Necklace extends Jewellery {

// Xác định lớp cơ sở

    {

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp;} & nbsp; & nbsp; & nbsp;

}

Chương trình sau đây minh họa Trình sửa đổi truy cập được bảo vệ trong PHP:

$obj->total();

$obj->printInvoice();

// Xác định lớp cơ sở

 

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

// Xác định lớp cơ sở

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

& nbsp; & nbsp; & nbsp; & nbsp; tổng số chức năng ()

& 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 & nbsp;

    }

}

Chương trình sau đây minh họa Trình sửa đổi truy cập được bảo vệ trong PHP:

class child_class extends base_class {    

// Xác định lớp cơ sở

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

// Xác định các lớp dẫn xuất & nbsp;

    }

}

Chương trình sau đây minh họa Trình sửa đổi truy cập được bảo vệ trong PHP:

// derived class

// Xác định lớp cơ sở

Đồ trang sức lớp {

$obj->member_func();

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

// Xác định lớp cơ sở

 

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

  • & nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

& nbsp; & nbsp; & nbsp; & nbsp; tổng số chức năng ()

// Xác định lớp cơ sở

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price1 = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

    } 

}

Chương trình sau đây minh họa Trình sửa đổi truy cập được bảo vệ trong PHP:

class Necklace extends Jewellery {

& nbsp; & nbsp; & nbsp; & nbsp; được bảo vệ $ price2 = 20000; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng trừ

& nbsp; & nbsp; & nbsp; & nbsp; tổng số chức năng ()

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp;}

}

$ f = trang sức mới ();

$ s = vòng cổ mới ();

 $f->printName('Ring'); 

$ s-> printName ('vòng cổ'); & nbsp;

 ?>

  • Thừa kế đa cấp

Di truyền đa cấp là một loại kế thừa khác được tìm thấy trong PHP. Di truyền đa cấp cũng có thể được giải thích bởi một cây gia đình. Có một lớp cơ sở. Lớp cơ sở này có thể được kế thừa bởi. Các lớp con này (không phải mọi lớp con nhất thiết) đều hoạt động như lớp cơ sở và được kế thừa thêm bởi các lớp con khác. Điều này giống như một gia đình có hậu duệ qua nhiều thế hệ. & NBSP;

Chương trình sau đây minh họa kế thừa đa cấp trong PHP:

// Lớp cơ sở có tên là "Trang sức"

Đồ trang sức lớp {

& nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai TotalCost () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Tổng chi phí trang sức: 600000';

    }  

}

// lớp học có tên là "Vòng cổ"

// "Đồ trang sức" của lớp kế thừa

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; vòng cổ chức năng công cộng () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Chi phí vòng cổ: 450000';

    }

}

// Lớp có tên có tên là "Mặt dây chuyền"

// "Vòng cổ" được thừa hưởng lớp "

Mặt dây chuyền mở rộng vòng cổ {

& nbsp; & nbsp; chức năng công khai pendantcost () {

& 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();

?>

  • 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; chức năng công khai TotalCost () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Tổng chi phí trang sức: 600000';

    } 

}

// lớp học có tên là "Vòng cổ"

// "Đồ trang sức" của lớp kế thừa

}

// lớp học có tên là "Vòng cổ"

// "Đồ trang sức" của lớp kế thừa

}

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; vòng cổ chức năng công cộng () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Chi phí vòng cổ: 450000';

// Lớp có tên có tên là "Mặt dây chuyền"

// "Vòng cổ" được thừa hưởng lớp "

?>

 

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; chức năng công khai TotalCost () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Tổng chi phí trang sức: 600000';

// lớp học có tên là "Vòng cổ"

// "Đồ trang sức" của lớp kế thừa

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; vòng cổ chức năng công cộng () {

}

// lớp học có tên là "Vòng cổ"

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; vòng cổ chức năng công cộng () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Chi phí vòng cổ: 450000';

    } 

}

// Lớp có tên có tên là "Mặt dây chuyền"

// "Vòng cổ" được thừa hưởng lớp "

Mặt dây chuyền mở rộng vòng cổ {

$obj->show(); 

& nbsp; & nbsp; chức năng công khai pendantcost () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Chi phí mặt dây chuyền: 600000';

?>

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; công khai $ chi phí = 10000;

& nbsp; & nbsp; & nbsp; & nbsp; // chức năng thành viên được bảo vệ & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; // của lớp cơ sở

& nbsp; & nbsp; & nbsp; & nbsp; Hiển thị chức năng được bảo vệ () {

& 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; & nbsp; & nbsp; chức năng công khai show () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL;

& nbsp;

& nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp;}

        $this->display();

// Tạo một đối tượng của lớp dẫn xuất

$ obj = vòng cổ mới (); & nbsp;

// Hàm gọi của lớp dẫn xuất & nbsp;

?>

$obj->show(); 

Ghi đè các phương pháp di truyền trong PHP

 

Ghi đè chức năng được hỗ trợ bởi sự kế thừa trong PHP. Nó có thể được quan sát khi một lớp có nguồn gốc và lớp cơ sở đều chứa một hàm có cùng tên. Cả hai chức năng nên có cùng số lượng đối số. Lớp dẫn xuất kế thừa các hàm thành viên và thành viên dữ liệu từ lớp cơ sở của nó. Vì vậy, để ghi đè một chức năng nhất định, bạn thực hiện ghi đè chức năng. & NBSP;

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"

// Lớp cơ sở có tên là "Trang sức"

class base_ class {

& nbsp; & nbsp; & nbsp; & nbsp; // "Hiển thị" chức năng của lớp cơ sở & nbsp;

& nbsp; // lớp có tên là "derive_class"

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL;

}

    } 

// lớp học có tên là "Vòng cổ"

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai show () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL;

& nbsp;

// Tạo một đối tượng của lớp dẫn xuất

// lớp học có tên là "Vòng cổ"

Vòng cổ lớp mở rộng đồ trang sức {

& nbsp; & nbsp; & nbsp; & nbsp; chức năng công khai show () {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; '. PHP_EOL;

& nbsp;

$obj->show();  

Ghi đè các phương pháp di truyền trong PHP

Ghi đè chức năng được hỗ trợ bởi sự kế thừa trong PHP. Nó có thể được quan sát khi một lớp có nguồn gốc và lớp cơ sở đều chứa một hàm có cùng tên. Cả hai chức năng nên có cùng số lượng đối số. Lớp dẫn xuất kế thừa các hàm thành viên và thành viên dữ liệu từ lớp cơ sở của nó. Vì vậy, để ghi đè một chức năng nhất định, bạn thực hiện ghi đè chức năng. & NBSP;

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; // lớp có tên là "derive_class"

lớp DOIVED_CLASS mở rộng base_class {

// Lớp cơ sở có tên là "Trang sức"

& 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;

& 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

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;

   $obj->show();

Ghi đè các phương pháp di truyền trong PHP

 
  • Ghi đè chức năng được hỗ trợ bởi sự kế thừa trong PHP. Nó có thể được quan sát khi một lớp có nguồn gốc và lớp cơ sở đều chứa một hàm có cùng tên. Cả hai chức năng nên có cùng số lượng đối số. Lớp dẫn xuất kế thừa các hàm thành viên và thành viên dữ liệu từ lớp cơ sở của nó. Vì vậy, để ghi đè một chức năng nhất định, bạn thực hiện ghi đè chức năng. & NBSP;

Các 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 phương thức trong PHP:

Không có từ khóa cuối cùng (sẽ tạo ra đầu ra, nhưng sẽ gây ra phương thức ghi đè)

& nbsp; & nbsp; & nbsp; lớp trang sức lớp {& nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

      }

   }

& nbsp; & nbsp; & nbsp; lớp TestClass mở rộng đồ trang sức {& nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

      }

& nbsp; & nbsp; & nbsp; lớp TestClass mở rộng đồ trang sức {& nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp;} & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; $ ob = new testClass;

& nbsp; & nbsp; & nbsp; $ ob-> printMessage ();

& nbsp; & nbsp; & nbsp; lớp trang sức lớp {& nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

      }

   }

& nbsp; & nbsp; & nbsp; lớp TestClass mở rộng đồ trang sức {& nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; lớp TestClass mở rộng đồ trang sức {& nbsp; & nbsp; & nbsp; & nbsp;

   }

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; function in

& nbsp; & nbsp; & nbsp;} & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; $ ob = new testClass;

& nbsp; & nbsp; & nbsp; $ ob-> printMessage ();

?>

Với từ khóa cuối cùng. (Sẽ ném một lỗi, để ngăn chặn sự ghi đè phương thức).

& nbsp; & nbsp; & nbsp; & nbsp;

  • Traits:

& 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;}

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;

    ...

    ...

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

    }

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

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;

$test->display();

$test->show();

// khai báo một lớp

& nbsp; & nbsp; & nbsp; $ ob = new testClass;

  • Interfaces:

& nbsp; & nbsp; & nbsp; $ ob-> printMessage ();

?>

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;}

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;

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.

Chương trình sau đây minh họa việc sử dụng các giao diện để thực hiện nhiều kế thừa: & nbsp;

// Xác định một lớp học

lớp chim {

& nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

     }

}

// khai báo một giao diện

giao diện pet {

& nbsp;

}

// khai báo một giao diện

giao diện pet {

& nbsp;

& nbsp; // Xác định một lớp dẫn xuất

// được thừa hưởng từ lớp chim

// và thực hiện giao diện PET

vẹt lớp mở rộng chim thực hiện pet {

& nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

     }

}

// khai báo một giao diện

giao diện pet {

& nbsp;

$obj->insidePet();

$obj->insideParrot();

& nbsp; // Xác định một lớp dẫn xuất

// được thừa hưởng từ lớp chim

// và thực hiện giao diện PET

  • vẹt lớp mở rộng chim thực hiện pet {
  • & nbsp; & nbsp;
  • & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
  • & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;}
  • & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo "và một con vẹt.";

// Tạo đối tượng của lớp dẫn xuất

$ obj = parrot mới ();

$ obj-> InsideBird ();

?>

Tầm quan trọng của việc thừa kế trong PHP

Bản thân sự kế thừa là một trong những khái niệm quan trọng nhất được giới thiệu trong lập trình hướng đối tượng. Sau đây là một số điểm chính nêu bật tầm quan trọng của việc thừa kế trong PHP:

Khả năng tái sử dụng mã: Kế thừa hỗ trợ mạnh mẽ cho khả năng tái sử dụng mã. Vì các chức năng và thuộc tính của một lớp có thể được kế thừa và sử dụng bởi các lớp khác, nên không cần phải viết các chức năng đó nhiều lần trong các phần khác nhau của chương trình.

Hát dữ liệu: Việc ẩn dữ liệu là một trong những khía cạnh quan trọng nhất của kế thừa. Khả năng truy cập của dữ liệu có thể được kiểm soát dễ dàng bằng cách sử dụng các công cụ sửa đổi truy cập và chỉ các dữ liệu cần thiết được phép truy cập bên ngoài lớp.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.

Khả năng mở rộng: Kế thừa cung cấp một cách để viết các chương trình mở rộng. Điều này có nghĩa là các chức năng hoặc lớp học bắt buộc có thể được mở rộng khi có yêu cầu trong sự tăng trưởng trong tương lai của chương trình hoặc ứng dụng. & NBSP;

Ghi đè: Khái niệm về phương pháp ghi đè có thể dễ dàng đạt được trong PHP. Các phương pháp của một lớp cơ sở có thể được xác định lại trong lớp dẫn xuất theo yêu cầu của chương trình. Các chức năng đó được ghi đè trong lớp dẫn xuất, mà không gây ra bất kỳ lỗi nào.When a class derives from another class. The child class will inherit all the public and protected properties and methods from the parent class. In addition, it can have its own properties and methods. An inherited class is defined by using the extends keyword.

Giảm độ phức tạp: Độ phức tạp của mã cũng được giảm vì các thuộc tính chung có thể được kế thừa đơn giản, mà không cần phải điều chỉnh lại chúng. Điều này làm cho mã thuận tiện.

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!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.

4 loại kế thừa là gì?

Các loại di truyền khác nhau..

Thừa kế duy nhất ..

Di truyền đa cấp ..

Thừa kế phân cấp ..

Thừa kế lai ..

Thừa kế đa đường ..

Nhiều kế thừa ..