Làm cách nào để truy cập một phương thức được bảo vệ trong PHP?
Công cụ sửa đổi truy cập trong Java giúp hạn chế phạm vi của một lớp, hàm tạo, biến, phương thức hoặc thành viên dữ liệu. Có bốn loại công cụ sửa đổi truy cập có sẵn trong java. Quyền truy cập của các công cụ sửa đổi khác nhau có thể được nhìn thấy trong bảng dưới đây như sau. Show
Từ khóa được bảo vệ trong Java đề cập đến một trong những công cụ sửa đổi quyền truy cập của nó. Các phương thức hoặc thành viên dữ liệu được khai báo là được bảo vệ có thể được truy cập từ
Có một số điểm quan trọng cần ghi nhớ như sau.
Thực hiện. Ở đây chúng tôi sẽ tạo hai gói p1 và p2. Lớp A trong p1 được công khai, để truy cập nó trong p2. Phương thức được hiển thị trong lớp A được bảo vệ và lớp B được kế thừa từ lớp A và phương thức được bảo vệ này sau đó được truy cập bằng cách tạo một đối tượng của lớp B ví dụ 1. gói p1 Java
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)0
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)5 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______7 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)1 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3_______0_______4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)5 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______7 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
GeeksforGeeks3
GeeksforGeeks5 GeeksforGeeks6 GeeksforGeeks7
GeeksforGeeks9 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 GeeksforGeeks1 GeeksforGeeks2 GeeksforGeeks3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______3 GeeksforGeeks6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 GeeksforGeeks8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C2 Class C3 Class C4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 đầu ra. GeeksforGeeks
A. Gọi chức năng được bảo vệ mà không cần mở rộng lớp chaỞ đây chúng ta sẽ tạo 2 package p1 và p2. Lớp A trong p1 được công khai, để truy cập nó trong p2. Phương thức hiển thị trong lớp A được bảo vệ. Nhưng đoạn mã này sẽ không thể truy cập vào chức năng “hiển thị” do lớp con chưa kế thừa giá trị của nó từ lớp chính và sẽ ném ra một ngoại lệ như được hiển thị. Ví dụ 1-A. gói p1 Java
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 GeeksforGeeks3
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 // protected modifier 1Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______7 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 // protected modifier 5Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 // protected modifier 9Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 3Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 Ví dụ 1-B. gói p2 JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
GeeksforGeeks3
GeeksforGeeks5 GeeksforGeeks6 GeeksforGeeks7
GeeksforGeeks9 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 package 9Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______3 GeeksforGeeks6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 GeeksforGeeks8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C2 Class C3 Class C4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 đầu ra. Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16) B. Truy cập một lớp được bảo vệỞ đây chúng tôi đang cố gắng truy cập một lớp được bảo vệ A dẫn đến lỗi. Ví dụ A JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)7 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 GeeksforGeeks3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 // protected modifier 5Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 3Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 Ví dụ B. gói p2 JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
GeeksforGeeks3
GeeksforGeeks5 GeeksforGeeks6 GeeksforGeeks7
GeeksforGeeks9 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 GeeksforGeeks1 GeeksforGeeks2 GeeksforGeeks3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______3 GeeksforGeeks6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 GeeksforGeeks8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C2 Class C3 Class C4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 đầu ra. Điều này sẽ ném một lỗi Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16) C. Truy cập chức năng hiển thị từ cùng một gói nhưng khác lớpThực hiện. Trong ví dụ này, chúng ta có quyền truy cập vào một chức năng được bảo vệ “hiển thị” từ cùng một gói nhưng khác lớp Ví dụ A. gói p1 JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 GeeksforGeeks3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______7 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 // protected modifier 5Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 3Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 Ví dụ B. lớp C JavaException in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)9 GeeksforGeeks0
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)95 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)4 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)98 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______3 GeeksforGeeks6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 GeeksforGeeks8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6 Class C0 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)07 Class C3 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)09 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)2 Class C6 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)6_______0_______8 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: p2.B.display at p2.B.main(B.java:16)8 đầu ra. GeeksforGeeks D. Truy cập chức năng hiển thị từ một gói khácỞ đây, chúng tôi đã cố gắng truy cập màn hình chức năng được bảo vệ từ một gói khác bằng cách kế thừa và mở rộng lớp. Làm cách nào để truy cập chức năng được bảo vệ trong PHP?Từ khóa được bảo vệ là công cụ sửa đổi quyền truy cập . Nó đánh dấu một thuộc tính hoặc phương thức là được bảo vệ. Các thuộc tính và phương thức được bảo vệ chỉ có thể được sử dụng bởi lớp trong đó thuộc tính hoặc phương thức được định nghĩa và bất kỳ lớp nào dẫn xuất từ nó. Bất kỳ mã nào khác không thể sử dụng chúng.
Bạn có thể truy cập các phương thức được bảo vệ không?công cụ sửa đổi truy cập được bảo vệ cho phép các lớp con của bạn nằm ngoài gói lớp cha của bạn nhưng vẫn kế thừa các phần của lớp bao gồm các phương thức và hàm tạo. Cách duy nhất để lớp con có thể truy cập các phương thức được bảo vệ là kế thừa .
Bạn có thể ghi đè một phương thức được bảo vệ PHP không?Ghi đè phương thức được bảo vệ bằng phương thức công khai trong lớp con giúp phương thức này có thể truy cập được từ mọi nơi. Điều này vi phạm nguyên tắc đóng gói và được coi là thông lệ xấu. Xem Phương thức hiển thị (php. mạng) để biết chi tiết
Làm cách nào để sử dụng công cụ sửa đổi quyền truy cập được bảo vệ trong PHP?PHP - Công cụ sửa đổi truy cập . public - thuộc tính hoặc phương thức có thể được truy cập từ mọi nơi. Đây là mặc định được bảo vệ - thuộc tính hoặc phương thức có thể được truy cập trong lớp và bởi các lớp dẫn xuất từ lớp đó private - thuộc tính hoặc phương thức CHỈ có thể được truy cập trong lớp |