晚上敲**的時候,發現呼叫jtextfield的protected getcolumnwidth()方法報錯。
看來自己以前對protected的理解是錯誤的,於是測試一下。
寫乙個父類和兩個子類
public class a
}
public class b1 extends a
}
public class b2 extends a
public static void main(string args)
}
寫乙個測試類
public class test
}
b1與a放在同乙個包中。三條語句都可以正常編譯執行
b2放在另乙個包。只能呼叫自己的a方法。其他兩條語句無法通過編譯
當測試類與a在同乙個包中時,三條語句都可以正常編譯執行。
當測試類與a不在同乙個包中時,三條語句均無法通過編譯。
以上測試說明只要與父類在同乙個包中,則可以呼叫父類和任意子類的該protected方法。
如果與父類不同同一包中,則只有子類可以呼叫自己所繼承的protected方法,其他情況均無法呼叫。
訪問修飾符protected
protected修飾符的確讓我有點困惑。例如 object的clone 方法就是protected修飾的。發現,有的時候可以訪問,但很多時候根本訪問不到。一 下面就以clone 方法為例 我在superclass類中,不重寫clone 只是訪問。如下 package cn public class...
繼承和Protected修飾符(C )
繼承 1.基類中受保護成員只能從基類及其派生類中訪問 2.例項化派生類時,會首先呼叫基類的構造器,避免遺忘對基類的構造器 3.基類如果沒有可訪問的構造器,編譯器就不清楚如何構造基類,進而報錯 4.避免出現這個問題,在派生類構造器的頭部要顯式指定要執行哪乙個基類構造器 看下面例子 public sea...
C 的protected訪問修飾符
概述 設a為父類,b為繼承a的子類 在a中被protected修飾的成員 1 在a中可以訪問 2 在b中可以直接訪問 3 在b中通過b的例項訪問 4 在a和b的外部類無法訪問 總結 基類中訪問無限制 子類中直接訪問或通過子類例項訪問 示例 using system namespace testpro...