Hướng dẫn php extends two classes - php mở rộng hai lớp

Chỉnh sửa: 2020 Php 5.4+ và 7+

Kể từ Php 5.4.0, có "đặc điểm" - bạn có thể sử dụng nhiều đặc điểm hơn trong một lớp, vì vậy điểm quyết định cuối cùng sẽ là liệu bạn có thực sự muốn thừa kế hay bạn chỉ cần một số "tính năng" (đặc điểm). Đặc điểm, mơ hồ nói, một giao diện đã được triển khai có nghĩa là chỉ là

I am a of A 
I am b of B 
I am c of C 
1D.really an inheritance or you just need some "feature"(trait). Trait is, vaguely said, an already implemented interface that is meant to be just
I am a of A 
I am b of B 
I am c of C 
1d.really an inheritance or you just need some "feature"(trait). Trait is, vaguely said, an already implemented interface that is meant to be just
I am a of A 
I am b of B 
I am c of C 
1d.

Nội dung chính ShowShow

  • Chỉnh sửa: 2020 Php 5.4+ và 7+
  • Câu trả lời chính xác
  • Câu trả lời thực sự
  • Lưu ý quan trọng
  • Trả về loại tương thích với các lớp bên trong
  • Chúng ta có thể mở rộng hai lớp trong lớp không?
  • Tại sao chúng ta không thể mở rộng nhiều lớp?
  • Bạn có thể mở rộng một lớp học mở rộng lớp khác không?
  • Những gì đang mở rộng lớp trong PHP?


Hiện đang được chấp nhận câu trả lời của @FRANCK sẽ hoạt động nhưng trên thực tế, nó không phải là một bản năng kế mà là một trường hợp trẻ em được xác định ngoài phạm vi, cũng có `__call ()` tốc ký-xem xét chỉ bằng cách sử dụng `$ này (args) `Bất cứ nơi nào bạn cần phương thức lớp bên ngoài trong lớp" mở rộng ".

Câu trả lời chính xác

Câu trả lời thực sự

Lưu ý quan trọng

Câu trả lời thực sự

Lưu ý quan trọng

Trả về loại tương thích với các lớp bên trong

Chúng ta có thể mở rộng hai lớp trong lớp không?

class firstInheritance{}
class secondInheritance extends firstInheritance{}
class someFinalClass extends secondInheritance{}
//...and so on...

Lưu ý quan trọng

Trả về loại tương thích với các lớp bên trongyou can only do multiple(2+) intehritance by hierarchy if you have control over all classes included in the process - that means, you can't apply this solution e.g. with built-in classes or with classes you simply can't edit - if you want to do that, you are left with the @Franck solution - child instances.

Chúng ta có thể mở rộng hai lớp trong lớp không?

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();

Tại sao chúng ta không thể mở rộng nhiều lớp?

I am a of A 
I am b of B 
I am c of C 

Bạn có thể mở rộng một lớp học mở rộng lớp khác không?

Những gì đang mở rộng lớp trong PHP?

Hiện đang được chấp nhận câu trả lời của @FRANCK sẽ hoạt động nhưng trên thực tế, nó không phải là một bản năng kế mà là một trường hợp trẻ em được xác định ngoài phạm vi, cũng có `__call ()` tốc ký-xem xét chỉ bằng cách sử dụng `$ này (args) `Bất cứ nơi nào bạn cần phương thức lớp bên ngoài trong lớp" mở rộng ".

Không, bạn không thể, không thực sự, như hướng dẫn sử dụng từ khóa

I am a of A 
I am b of B 
I am c of C 
3 nói:

Một lớp mở rộng luôn phụ thuộc vào một lớp cơ sở duy nhất, nghĩa là nhiều kế thừa không được hỗ trợ.

Tuy nhiên, như @Adam đã đề xuất chính xác, điều này không cấm bạn sử dụng nhiều kế thừa phân cấp.:

Bạn có thể mở rộng một lớp, với một lớp khác và một lớp khác với ...

Vì vậy, ví dụ khá đơn giản về điều này sẽ là::

Như bạn có thể nhận thấy, bạn chỉ có thể thực hiện nhiều (2+) theo phân cấp nếu bạn có quyền kiểm soát tất cả các lớp có trong quy trình - điều đó có nghĩa là, bạn không thể áp dụng giải pháp này, ví dụ: Với các lớp học tích hợp hoặc với các lớp bạn chỉ đơn giản là không thể chỉnh sửa - nếu bạn muốn làm điều đó, bạn sẽ bị bỏ lại với giải pháp @FRANCK - các trường hợp trẻ em.you can only do multiple(2+) intehritance by hierarchy if you have control over all classes included in the process - that means, you can't apply this solution e.g. with built-in classes or with classes you simply can't edit - if you want to do that, you are left with the @Franck solution - child instances.

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
2

... và cuối cùng là ví dụ với một số đầu ra:

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
3
class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
4
class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
5

Trả về loại tương thích với các lớp bên trong

Chúng ta có thể mở rộng hai lớp trong lớp không?

Tại sao chúng ta không thể mở rộng nhiều lớp?

Bạn có thể mở rộng một lớp học mở rộng lớp khác không?

Những gì đang mở rộng lớp trong PHP?

Hiện đang được chấp nhận câu trả lời của @FRANCK sẽ hoạt động nhưng trên thực tế, nó không phải là một bản năng kế mà là một trường hợp trẻ em được xác định ngoài phạm vi, cũng có `__call ()` tốc ký-xem xét chỉ bằng cách sử dụng `$ này (args) `Bất cứ nơi nào bạn cần phương thức lớp bên ngoài trong lớp" mở rộng ".

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
7

Không, bạn không thể, không thực sự, như hướng dẫn sử dụng từ khóa

I am a of A 
I am b of B 
I am c of C 
3 nói:

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
8

Một lớp mở rộng luôn phụ thuộc vào một lớp cơ sở duy nhất, nghĩa là nhiều kế thừa không được hỗ trợ.

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
9

Tuy nhiên, như @Adam đã đề xuất chính xác, điều này không cấm bạn sử dụng nhiều kế thừa phân cấp.

Bạn có thể mở rộng một lớp, với một lớp khác và một lớp khác với ...

Vì vậy, ví dụ khá đơn giản về điều này sẽ là:

Như bạn có thể nhận thấy, bạn chỉ có thể thực hiện nhiều (2+) theo phân cấp nếu bạn có quyền kiểm soát tất cả các lớp có trong quy trình - điều đó có nghĩa là, bạn không thể áp dụng giải pháp này, ví dụ: Với các lớp học tích hợp hoặc với các lớp bạn chỉ đơn giản là không thể chỉnh sửa - nếu bạn muốn làm điều đó, bạn sẽ bị bỏ lại với giải pháp @FRANCK - các trường hợp trẻ em.you can only do multiple(2+) intehritance by hierarchy if you have control over all classes included in the process - that means, you can't apply this solution e.g. with built-in classes or with classes you simply can't edit - if you want to do that, you are left with the @Franck solution - child instances.

... và cuối cùng là ví dụ với một số đầu ra:

I am a of A 
I am b of B 
I am c of C 
6
I am a of A 
I am b of B 
I am c of C 
7
I am a of A 
I am b of B 
I am c of C 
8
I am a of A 
I am b of B 
I am c of C 
9

Đầu ra nào

Bạn có thể mở rộng một lớp, với một lớp khác và một lớp khác với ...

I am a of A 
I am b of B 
I am c of C 
10

I am a of A 
I am b of B 
I am c of C 
11

I am a of A 
I am b of B 
I am c of C 
12

I am a of A 
I am b of B 
I am c of C 
13

Vì vậy, ví dụ khá đơn giản về điều này sẽ là:

I am a of A 
I am b of B 
I am c of C 
15

Như bạn có thể nhận thấy, bạn chỉ có thể thực hiện nhiều (2+) theo phân cấp nếu bạn có quyền kiểm soát tất cả các lớp có trong quy trình - điều đó có nghĩa là, bạn không thể áp dụng giải pháp này, ví dụ: Với các lớp học tích hợp hoặc với các lớp bạn chỉ đơn giản là không thể chỉnh sửa - nếu bạn muốn làm điều đó, bạn sẽ bị bỏ lại với giải pháp @FRANCK - các trường hợp trẻ em.you can only do multiple(2+) intehritance by hierarchy if you have control over all classes included in the process - that means, you can't apply this solution e.g. with built-in classes or with classes you simply can't edit - if you want to do that, you are left with the @Franck solution - child instances.

... và cuối cùng là ví dụ với một số đầu ra:

I am a of A 
I am b of B 
I am c of C 
16

I am a of A 
I am b of B 
I am c of C 
17

I am a of A 
I am b of B 
I am c of C 
18

I am a of A 
I am b of B 
I am c of C 
19

I am a of A 
I am b of B 
I am c of C 
30

Đầu ra nào

Sibian0218 tại Gmail Dot Com ¶

I am a of A 
I am b of B 
I am c of C 
31

I am a of A 
I am b of B 
I am c of C 
32

I am a of A 
I am b of B 
I am c of C 
14

I am a of A 
I am b of B 
I am c of C 
34

4 năm trước

Bạn có thể mở rộng một lớp, với một lớp khác và một lớp khác với ...

I am a of A 
I am b of B 
I am c of C 
35

I am a of A 
I am b of B 
I am c of C 
36

I am a of A 
I am b of B 
I am c of C 
37

I am a of A 
I am b of B 
I am c of C 
14

I am a of A 
I am b of B 
I am c of C 
39

Như bạn có thể nhận thấy, bạn chỉ có thể thực hiện nhiều (2+) theo phân cấp nếu bạn có quyền kiểm soát tất cả các lớp có trong quy trình - điều đó có nghĩa là, bạn không thể áp dụng giải pháp này, ví dụ: Với các lớp học tích hợp hoặc với các lớp bạn chỉ đơn giản là không thể chỉnh sửa - nếu bạn muốn làm điều đó, bạn sẽ bị bỏ lại với giải pháp @FRANCK - các trường hợp trẻ em.you can only do multiple(2+) intehritance by hierarchy if you have control over all classes included in the process - that means, you can't apply this solution e.g. with built-in classes or with classes you simply can't edit - if you want to do that, you are left with the @Franck solution - child instances.

... và cuối cùng là ví dụ với một số đầu ra:

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
40

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
41

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
42

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
43

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

Strata_ranger tại hotmail dot com ¶

Akashwebdev tại gmail dot com ¶

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
45

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
46

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

7 năm trước ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
48

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
49

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
40

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
41

Strata_ranger tại hotmail dot com ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
42

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
43

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

Strata_ranger tại hotmail dot com ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
46

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
47

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
48

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
49

Strata_ranger tại hotmail dot com ¶

Akashwebdev tại gmail dot com ¶

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
40

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
41

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
42

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
43

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

7 năm trước ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
45

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
46

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
47

I am a of A 
I am b of B 
I am c of C 
14

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
49

Niemans tại pbsolo dot nl ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
40

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
41

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
42

Strata_ranger tại hotmail dot com ¶

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
43

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
45

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
46

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
47

Strata_ranger tại hotmail dot com ¶

Niemans tại pbsolo dot nl ¶

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
48

2 năm trước ¶

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
40

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
41

12 năm trước

5 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
42

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
43

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
44

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
45

Niemans tại pbsolo dot nl ¶

2 năm trước ¶, but implement many interfaces. An interface can extend another interface, in a similar way as a class can extend another class.

12 năm trước

class A{
  function a_hi(){
    echo "I am a of A".PHP_EOL."
".PHP_EOL; } } class B extends A{ function b_hi(){ echo "I am b of B".PHP_EOL."
".PHP_EOL; } } class C extends B{ function c_hi(){ echo "I am c of C".PHP_EOL."
".PHP_EOL; } } $myTestInstance = new C(); $myTestInstance->a_hi(); $myTestInstance->b_hi(); $myTestInstance->c_hi();
49 . For example: Class C extends class A and B then this type of inheritance is known as multiple inheritance.

Mohammad Istanbouly ¶ ¶

Chúng ta có thể mở rộng hai lớp trong lớp không?. A class that extends another class inherits all the methods and properties of the extended class. In addition, the extending class can override the existing virtual methods by using the override keyword in the method definition.

Một lớp chỉ có thể mở rộng một lớp, nhưng thực hiện nhiều giao diện.Một giao diện có thể mở rộng giao diện khác, theo cách tương tự như một lớp có thể mở rộng một lớp khác., but implement many interfaces. An interface can extend another interface, in a similar way as a class can extend another class.

Tại sao chúng ta không thể mở rộng nhiều lớp?used to derive a class from another class. This is called inheritance. A derived class has all of the public and protected properties of the class that it is derived from.