一.成員訪問和屬性
class per
private string name;
public string address;
public int age;
public per()
name = "upagn";
address = "changsha";
在main()函式中的**如上圖所示,
在編譯過程中會出現錯誤:
錯誤「ceshi.per.name」不可訪問,因為它受保護級別限制
有關屬性set和get,set and get,它們的用途: 一般是對類裡面的變數進行操作. 而不是直接對類的變數進行操作.有乙個很大的作用就是: 便於維護.看下面的程式
在實際程式中的變數呼叫get和set:
per percy = new per();
console.writeline(percy.address);
console.writeline(percy.name);
percy.age = 22; //呼叫set對age賦值
console.writeline(percy.age);
//呼叫get獲取當前物件age的值
二.有關抽象類和抽象方法的實現
抽象類中只定義了一些成員和抽象的方法,當中成員不一定是抽象的,但是方法必須是抽象的,而且要在子類中覆蓋來現實一定的功能;抽象類是不能例項化的。抽象方法也是,只定義了乙個方法體,沒有具體實現的**,要在子類中覆蓋,下表中左邊是個抽象類和它的抽象方法,右邊的類繼承了它並實現了抽象方法
public abstract class myab
public abstract void hi(string name);
//抽象方法不可有主體。
public class submyab : myab
類可以這樣來初時化並使用: submyab obj = new submyab();obj.hi(obj.city); 介面與抽象類的區別是介面中所有的成員都是抽象的,不能包含建構函式,析構函式和靜態成員與常量。乙個介面可以被多個類繼承,乙個類可以繼承多個介面,並實現介面中的方法,下面定義乙個介面,來求三個不同形狀的面積:
public inte***ce ishape
double getarea();//抽象方法只能寫成這個樣子
}//三個類的例項物件求面積
retange myre = new retange(2, 8); console.writeline(myre.getarea());
******** mytri = new ********(5, 1, 9);
console.writeline(mytri.getarea());
circle mycur = new circle(10);
console.writeline(mycur.getarea());
public class circle : ishape
public double radius;
public circle(double radius)
this.radius = radius; //建構函式
public double getarea()
return (math.pi) * this.radius * this.radius;
public class retange : ishape
public double witdh;
public double height;
public retange(double width, double height)
this.witdh = width;
this.height = height;//建構函式
public double getarea()
return this.height * this.witdh;
輸出結果是:
315.159265358979
public class ******** : ishape
public double arc1;
public double arc2;
public double arc3;
public ********(double arc1,double arc2,double arc3)
this.arc1 = arc1;
this.arc2 = arc2;
this.arc3 = arc3; //建構函式
public double getarea()
return this.arc1 * this.arc2 * this.arc3;
c 抽象類與介面
1.抽象類是乙個類,可以包含一切類可以包含的型別成員。2.抽象方法必須包含在抽象類裡面,也就是乙個類中有抽象方法,那這個類一定是抽象類。3.繼承抽象類,必須顯示的實現override其抽象成員 方法 4.抽象類可以包含普通成員,但是抽象成員只能放到抽象類裡。5.抽象類不能直接例項話,宣告的物件只能使...
C 抽象類和介面
net 提供了介面,這個不同於 class 或者struct 的型別定義。介面有些情況,看似和抽象類一樣,因此有些人認為在 net 可以完全用介面來替換抽象類。其實不然,介面和抽象類各有長處和缺陷,因此往往在應用當中,兩者要結合來使用,從而互補長短。接下來先說說抽象類和介面的區別。區別一,兩者表達的...
C 抽象類和介面
物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。在類的基礎上進行抽象,那麼便是抽象類。比如黑貓,白貓,小貓,大貓,它們的共同特點就是屬於貓,那麼貓就是乙個類,同樣狗也是乙個類。在貓狗的基礎上,因為它們均屬於動物,那麼動物便是它們...