PHP - Giao diện là gì?
Giao diện cho phép bạn chỉ định những phương thức nào mà một lớp nên thực hiện.
Các giao diện giúp dễ dàng sử dụng nhiều lớp khác nhau theo cùng một cách. Khi một hoặc nhiều lớp sử dụng cùng một giao diện, nó được gọi là "đa hình".
Các giao diện được khai báo với từ khóa interface
:
Cú pháp
PHP - Giao diện so với các lớp trừu tượng
Giao diện tương tự như các lớp trừu tượng. Sự khác biệt giữa các giao diện và các lớp trừu tượng là:
- Các giao diện không thể có thuộc tính, trong khi các lớp trừu tượng có thể
- Tất cả các phương thức giao diện phải được công khai, trong khi các phương thức lớp trừu tượng được công khai hoặc được bảo vệ
- Tất cả các phương thức trong giao diện đều trừu tượng, vì vậy chúng không thể được thực hiện trong mã và từ khóa trừu tượng là không cần thiết
- Các lớp có thể triển khai giao diện trong khi kế thừa từ một lớp khác cùng một lúc
PHP - Sử dụng giao diện
Để thực hiện giao diện, một lớp phải sử dụng từ khóa implements
.
Một lớp thực hiện giao diện phải thực hiện tất cả các phương thức của giao diện.all of the interface's methods.
Thí dụ
$animal->makeSound[];
?>
Hãy tự mình thử »
Từ ví dụ trên, hãy nói rằng chúng tôi muốn viết phần mềm quản lý một nhóm động vật. Có những hành động mà tất cả các động vật có thể làm, nhưng mỗi con vật làm điều đó theo cách riêng của nó.
Sử dụng giao diện, chúng ta có thể viết một số mã có thể hoạt động cho tất cả các động vật ngay cả khi mỗi con vật cư xử khác nhau:
Thí dụ
public function
makeSound[] {
echo " Bark ";
}
}
Hãy tự mình thử »
public function makeSound[] {
echo " Squeak ";
}
}
Từ ví dụ trên, hãy nói rằng chúng tôi muốn viết phần mềm quản lý một nhóm động vật. Có những hành động mà tất cả các động vật có thể làm, nhưng mỗi con vật làm điều đó theo cách riêng của nó.
$cat = new Cat[];
$dog = new Dog[];
$mouse = new Mouse[];
$animals = array[$cat, $dog, $mouse];
Sử dụng giao diện, chúng ta có thể viết một số mã có thể hoạt động cho tất cả các động vật ngay cả khi mỗi con vật cư xử khác nhau:
foreach[$animals as $animal] {
$animal->makeSound[];
}
?>
Hãy tự mình thử »
Từ ví dụ trên, hãy nói rằng chúng tôi muốn viết phần mềm quản lý một nhóm động vật. Có những hành động mà tất cả các động vật có thể làm, nhưng mỗi con vật làm điều đó theo cách riêng của nó.
Sử dụng giao diện, chúng ta có thể viết một số mã có thể hoạt động cho tất cả các động vật ngay cả khi mỗi con vật cư xử khác nhau:
// lớp định nghĩa class Cat thực hiện động vật {& nbsp; hàm công khai [] {& nbsp; & nbsp; & nbsp; tiếng vang "meow"; & nbsp; }}
Trong Java, một giao diện chỉ định hành vi của một lớp bằng cách cung cấp một loại trừu tượng. Là một trong những khái niệm cốt lõi của Java, sự trừu tượng, đa hình và nhiều kế thừa được hỗ trợ thông qua công nghệ này. Các giao diện được sử dụng trong Java để đạt được sự trừu tượng.
Giao diện đối tượng cho phép bạn tạo mã chỉ định phương thức nào một lớp phải thực hiện, mà không phải xác định cách thực hiện các phương thức này. Giao diện chia sẻ một không gian tên với các lớp và đặc điểm, vì vậy chúng không được sử dụng cùng tên.
Các giao diện được xác định theo cách tương tự như một lớp, nhưng với từ khóa interface
thay thế từ khóa class
và không có bất kỳ phương thức nào có nội dung của chúng được xác định.
Tất cả các phương thức được khai báo trong một giao diện phải được công khai; Đây là bản chất của một giao diện.
- Trong thực tế, các giao diện phục vụ hai mục đích bổ sung:
- Để cho phép các nhà phát triển tạo các đối tượng của các lớp khác nhau có thể được sử dụng thay thế cho vì chúng thực hiện cùng một giao diện hoặc giao diện. Một ví dụ phổ biến là nhiều dịch vụ truy cập cơ sở dữ liệu, nhiều cổng thanh toán hoặc các chiến lược bộ đệm khác nhau. Các triển khai khác nhau có thể được hoán đổi mà không yêu cầu bất kỳ thay đổi nào đối với mã sử dụng chúng.
Để cho phép một hàm hoặc phương thức chấp nhận và hoạt động trên một tham số phù hợp với giao diện, trong khi không quan tâm đến những gì đối tượng có thể làm hoặc cách nó được thực hiện. Các giao diện này thường được đặt tên như Iterable
, Cacheable
, Renderable
hoặc vì vậy để mô tả tầm quan trọng của hành vi.
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.
implements
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.
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 thực hiện giao diện có thể sử dụng một tên khác cho các tham số của nó so với giao diện. Tuy nhiên, kể từ Php 8.0, ngôn ngữ hỗ trợ các đối số có tên, có nghĩa là người gọi có thể dựa vào tên tham số trong giao diện. Vì lý do đó, chúng tôi khuyến nghị các nhà phát triển sử dụng cùng tên tham số giống như giao diện đang được triển khai.
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ú::
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.
implements
0
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.
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ụ
implements
1
implements
2
implements
3Ví dụ về giao diện số 1
implements
4
interface
implements
6Ví dụ #2 Giao diện có thể mở rộng
implements
4
interface
implements
9Ví dụ #3 Di truyền giao diện nhiều
makeSound[]
0
class
makeSound[]
2Ví dụ #4 Giao diện với hằng số
makeSound[]
3
makeSound[]
4
makeSound[]
5Ví dụ #5 Giao diện với các lớp trừu tượng
makeSound[]
6
interface
makeSound[]
8Ví dụ #6 mở rộng và thực hiện đồng thời
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
makeSound[]
9
interface
0
interface
1
interface
211 năm trước ¶
vcnbianchi ¶
interface
3
10 tháng trước ¶
Williebegoode tại Att Dot Net
interface
4
interface
5
interface
6