我想了解爲什麼我們無法訪問不在同一個包中的另一個類女兒(使用繼承)的類的受保護成員。 就像是:具有繼承權的受保護成員
package library ; class Book { protected String author ; } package building ; class CourseBook extends Book { public CourseBook() { Book book = new Book() ; book.author = "ABC"; } }
我想了解爲什麼我們無法訪問不在同一個包中的另一個類女兒(使用繼承)的類的受保護成員。 就像是:具有繼承權的受保護成員
package library ; class Book { protected String author ; } package building ; class CourseBook extends Book { public CourseBook() { Book book = new Book() ; book.author = "ABC"; } }
受保護的訪問修飾符是包內包外,但通過繼承才能訪問。
受保護的訪問修飾符可應用於數據成員,方法和構造函數。它不能應用於課堂上。 類先擴展它應該可見。適用適當的訪問修飾符
public class Book {
protected String author;
}
class CourseBook extends Book {
public CourseBook() {
author = "ABC";
}
}
您可以訪問超類的保護成員的一個子類,但僅在inheritance
方式,E,G:
Public CourseBook() {
author = "ABC";
}
您可以像訪問自己班級的成員那樣訪問。但是,您無法像訪問public
成員(通過使用.
運算符)那樣訪問它,因爲受保護的成員在繼承類層次結構之外不可見。
這應該是什麼語言? 'Class','Public','Protected'和'Package'應該是小寫字母。很清楚,代碼不會編譯,請顯示代碼*將*編譯來演示您的實際問題。 – luk2302
您需要正確拼寫關鍵字!你發佈的內容不會被編譯。什麼是「dauther」?誰告訴你,受保護的成員不能從不同的包中訪問?這根本不是事實。任何擴展類都可以訪問其超類的「受保護」成員。我建議你學習Java教程和JLS。閱讀精細手冊。 –