屬性的本質:就是對類中的變量的屬性(只讀、只寫、讀寫)進行控制。
屬性也可以看成“變量”。
1. 普通屬性
class A {
privateint a;
privateint b;
public int aA
{
get{
returna;//可以return表達式或者其他
}
set
{
a = value;//value就是屬性賦值時,右邊的值
}
}
public int aB {
set{
b = value;
}
}
}
MAIN
A mya = new A();
mya.aA = 3;//隱式調用了set{}
System.Console.WriteLine(mya.aA);//隱式調用了get{}
2. 抽象屬性
public abstract class A {
public abstract int aA
{
get;
set;
}
}
public class B : A
{
private int f;
public override int aA {
get {
return f;
}
set {
f = value;
}
}
}
class Program
{
static void Main(string[] args)
{
A mya = newB();
mya.aA = 3;
System.Console.WriteLine(mya.aA);
}
}
條件:
1. 基類必須爲抽象基類
2. 基類中的屬性必須是抽象的
3. 子類中的定義屬性是必須有override
可以看出,抽象屬性定義在抽象類中,它不與變量關聯。和多態類似,相當於使得:父類擁有可以訪問或修改子類變量的權利。或者說,給父類增加一個“變量”。