繼承:
1.基類中受保護成員只能從基類及其派生類中訪問
2.例項化派生類時,會首先呼叫基類的構造器,避免遺忘對基類的構造器
3.基類如果沒有可訪問的構造器,編譯器就不清楚如何構造基類,進而報錯
4.避免出現這個問題,在派生類構造器的頭部要顯式指定要執行哪乙個基類構造器
看下面例子:
public sealed partial class inheritanceexample : page
,手機系統:", phone.brand, phone.showsystemname());
lumia lumia = new lumia("flyme");
//未設定lumia的brand和screensize屬性,雖然父類的brand設定了,但是兩者並不是一樣的,父類是父類的值,子類是子類的值,這點必須要認清。
//注意未設定值的brand和screensize最後的輸出。
txtblk2.text = string.format("手機品牌:,手機系統:,手機螢幕:", lumia.brand, lumia.showsystemname(), lumia.screensize);
lumia lumia2 = new lumia("win10 mobile");
lumia2.brand = "microsoft";
lumia2.screensize = 5;
txtblk3.text = string.format("手機品牌:,手機系統:,手機螢幕:", lumia2.brand, lumia2.showsystemname(), lumia2.screensize);
}}class phone
private string _operationsystem;
protected string operationsystem
set}
public string showsystemname()
//基類構造器(那麼派生類構造器要指定呼叫基類的哪個構造器)
public phone(string operationsystem)
}class lumia:phone
string showsystem(phone phone)
//注意這個建構函式必須要寫,還有後面的":base(operationsystem)"
//例項化派生類,首先會呼叫基類構造器,來避免繞過對基類的初始化
//如果不在派生類構造器頭部顯式指定執行哪乙個基類構造器,就會因為缺少可訪問的構造器而報錯
public lumia(string operationsystem):base(operationsystem)
}
結果截圖:
protected修飾符總結
晚上敲 的時候,發現呼叫jtextfield的protected getcolumnwidth 方法報錯。看來自己以前對protected的理解是錯誤的,於是測試一下。寫乙個父類和兩個子類 public class a public class b1 extends a public class b...
訪問修飾符protected
protected修飾符的確讓我有點困惑。例如 object的clone 方法就是protected修飾的。發現,有的時候可以訪問,但很多時候根本訪問不到。一 下面就以clone 方法為例 我在superclass類中,不重寫clone 只是訪問。如下 package cn public class...
C 的protected訪問修飾符
概述 設a為父類,b為繼承a的子類 在a中被protected修飾的成員 1 在a中可以訪問 2 在b中可以直接訪問 3 在b中通過b的例項訪問 4 在a和b的外部類無法訪問 總結 基類中訪問無限制 子類中直接訪問或通過子類例項訪問 示例 using system namespace testpro...