Trong Java tutorial "Defining an Interface" có thể, nó nóiJava hướng dẫn nói rằng tôi có thể có một giao diện gói tin, nhưng tôi không
Nếu bạn không xác định rằng giao diện là
public
, giao diện của bạn sẽ có thể truy cập duy nhất các lớp được định nghĩa trong cùng một gói với giao diện.
Tuy nhiên, đây
interface PPInterface {
void foo();
void bar();
}
class NewClass implements PPInterface {
void foo() {}
void bar() {}
}
tạo ra lỗi biên dịch trong NewClass
bởi vì tôi đang 'cố gắng gán đặc quyền truy cập yếu; được công khai '. Vì vậy, các tài liệu là sai, hoặc tôi đã làm một cái gì đó sai, hoặc tôi misinterpreted tài liệu?
Tôi cho rằng tôi không phải sử dụng giao diện-- Tôi thích nó vì nó giữ mọi thứ được sắp xếp hợp lý.
Ugh, chúng ta lại bị buộc phải hack xung quanh với các lớp trừu tượng do giới hạn truy cập hạn chế của 'interface' http: // stackoverflow của Java.com/questions/5376970/protected-in-interfaces/5377300 # 5377300 – Pacerier
"đó là loại giao diện không hiển thị bên ngoài gói, không phải là phương pháp". Làm cách nào tôi có thể truy cập các phương thức công khai của một Loại vô hình? Tôi vẫn không hiểu mục đích của các phương thức công cộng là gì trong một gói - lớp riêng (hoặc giao diện ..). –
@KayayTugay: Các phương thức giao diện luôn là 'công khai', cho dù có hiệu quả thiết thực hay không. Nhưng nếu, ví dụ, bạn có một kiểu gói riêng để thực hiện một số giao diện công cộng hoặc mở rộng một số kiểu công khai, các phương thức 'public' trên lớp/giao diện mà ghi đè lên các phương thức từ kiểu công khai có thể sử dụng từ bên ngoài gói. – ColinD