Hướng dẫn php extend multiple classes - php mở rộng nhiều lớp

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Với "thực hiện", tôi có thể buộc một lớp xác định một số chức năng nhất định, nhưng tôi cần thêm một số chức năng vào giao diện để tránh mã trùng lặp. Điều này chỉ có thể nếu tôi tạo ra lớp "trừu tượng" và sử dụng "mở rộng". Nhưng "mở rộng" chỉ chấp nhận một lớp. Bởi vì mỗi lớp này là khác nhau, các tính năng giống như của một ứng dụng, tôi không thể mở rộng một trong số này. Vì vậy, có cách nào để có

class My extends Feature1, Feature2, Feature3{
}

??

Hỏi ngày 14 tháng 4 năm 2015 lúc 9:16Apr 14, 2015 at 9:16

Hướng dẫn php extend multiple classes - php mở rộng nhiều lớp

2

PHP không cho phép nhiều người. Có hai cách để làm điều này -

Ngày thứ nhất

class a { }

class b extends a { }

class c extends b { }

Giao diện - -

interface sb { }

class c extends a implements sb { }

Đã trả lời ngày 14 tháng 4 năm 2015 lúc 9:21Apr 14, 2015 at 9:21

Hướng dẫn php extend multiple classes - php mở rộng nhiều lớp

Sougata Bosesougata BoseSougata Bose

31.2k8 Huy hiệu vàng47 Huy hiệu bạc87 Huy hiệu đồng8 gold badges47 silver badges87 bronze badges

1

Thanhn2001 tại gmail dot com

11 năm trước

vcnbianchi ¶

9 tháng trước

  • Williebegoode tại Att Dot Net
  • 8 năm trước

Các giao diện có thể xác định các phương thức ma thuật để yêu cầu thực hiện các lớp để thực hiện các phương thức đó.

Ghi chú::

Mặc dù chúng được hỗ trợ, bao gồm các hàm tạo trong giao diện không được khuyến khích mạnh mẽ. Làm như vậy làm giảm đáng kể tính linh hoạt của đối tượng thực hiện giao diện. Ngoài ra, các nhà xây dựng không được thực thi bởi các quy tắc thừa kế, có thể gây ra hành vi không nhất quán và bất ngờ.

implements

Để thực hiện giao diện, toán tử implements được sử dụng. Tất cả các phương thức trong giao diện phải được thực hiện trong một lớp; Không làm như vậy sẽ dẫn đến một lỗi nghiêm trọng. Các lớp có thể triển khai nhiều hơn một giao diện nếu muốn bằng cách tách từng giao diện bằng dấu phẩy.

Cảnh báo

Một lớp có thể triển khai hai giao diện xác định một phương thức có cùng tên, chỉ khi khai báo phương thức trong cả hai giao diện là giống hệt nhau.

Cảnh báo

Một lớp có thể triển khai hai giao diện xác định một phương thức có cùng tên, chỉ khi khai báo phương thức trong cả hai giao diện là giống hệt nhau.

Ghi chú::

Các giao diện có thể được mở rộng như các lớp sử dụng toán tử mở rộng.

Ghi chú::

Lớp thực hiện giao diện phải khai báo tất cả các phương thức trong giao diện với chữ ký tương thích.

class a { } class b extends a { } class c extends b { } 0

Nó có thể cho các giao diện có hằng số.Hằng số giao diện hoạt động chính xác như hằng số lớp.Trước Php 8.1.0, chúng không thể bị ghi đè bởi một lớp/giao diện kế thừa chúng.

Ví dụ

Ví dụ về giao diện số 1

class a { }

class b extends a { }

class c extends b { }
1

class a { }

class b extends a { }

class c extends b { }
2

class a { }

class b extends a { }

class c extends b { }
3

Ví dụ #2 Giao diện có thể mở rộng

class a { }

class b extends a { }

class c extends b { }
4

interface

class a { }

class b extends a { }

class c extends b { }
6

Ví dụ #3 Di truyền giao diện nhiều

class a { }

class b extends a { }

class c extends b { }
4

interface

class a { }

class b extends a { }

class c extends b { }
9

Ví dụ #4 Giao diện với hằng số

interface sb { }

class c extends a implements sb { }
0

class

interface sb { }

class c extends a implements sb { }
2

Ví dụ #5 Giao diện với các lớp trừu tượng

interface sb { }

class c extends a implements sb { }
3

interface sb { }

class c extends a implements sb { }
4

interface sb { }

class c extends a implements sb { }
5

Ví dụ #6 mở rộng và thực hiện đồng thời

interface sb { }

class c extends a implements sb { }
6

interface

interface sb { }

class c extends a implements sb { }
8

Một giao diện, cùng với các khai báo loại, cung cấp một cách tốt để đảm bảo rằng một đối tượng cụ thể chứa các phương thức cụ thể.Xem InstanceOf toán tử và khai báo loại.

Thanhn2001 tại gmail dot com

11 năm trước

interface sb { }

class c extends a implements sb { }
9

interface0

interface1

interface2

vcnbianchi ¶

9 tháng trước

interface3

Williebegoode tại Att Dot Net

8 năm trước

interface4

interface5

interface6