黑馬程式設計師—物件導向之封裝、繼承、多型
---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------
剛開始接觸物件導向的時候,確實對於封裝、繼承、多型了解不多,而且還相當困惑;不過,通過自己的學習,再結合高手的意見和方法,對類、屬性、構造方法、抽象類、抽象方法、虛方法與封裝、繼承多型之間的關係也有所了解。
封裝:在學習面向過程的時候,習慣了那種從頭一句一句寫到尾的過程,到了物件導向接觸了類、屬性和字段,也就漸漸明白:物件導向就是對面向過程的封裝。比如說:
class program
,今年歲,身高厘公尺",p1.name,p1.age,p1.height);
console.readkey();}}
class person
//字段:public 型別¨ 字段
public int age;
public int height;
//方法:訪問修飾符 static 返回值 方法名()
//方法是對過程的封裝,我們把復用的**都寫在方法裡,就是要達到//封裝的目的
public void sayhello()}}
}從類、屬性、方法都可以體現物件導向的封裝性。
繼承:就好像兒子繼承父親的特性一樣。在繼承中,父類有的字段、屬性、方法、構造方法等,子類都可以繼承使用,也就是說,我們父類的非私有成員都被子類繼承過來,並且也可以對這些成員進行擴充套件,子類自己也可以定義自己的成員,不過我們類中只能有乙個父類,且都可以被他的子類繼承,也就是像現實中,我們只有乙個父親,但父親可以有多個孩子一樣。(所有的類都**於object類,就算只有乙個類也一樣;繼承是具有傳遞性的。)
還是看例子:
class program
}class person //定義乙個類,被繼承的類,父類。
string name;
public string name//屬性
int age;
public int age//屬性
public void sayhello() //定義乙個方法
,今年歲!」,name,age);}}
class teacher:person //在定義乙個類,這個類繼承與person類,為繼//承類,子類。
public void sayhello() //定義乙個方法
,今年歲!」,name,age);
}多型:對於多型,其實也不是很難理解,乙個動作,不同的結果,就好像在你床頭上有個按鈕,剛開始你不清楚,按那個按鈕是讓她亮燈還是開風扇;主程式程式設計的時候,使用父類進行程式設計,具體的實現有子類來實現。不過要實現多型也並不簡單,說到父類子類,那至少需要繼承吧,而且還得要有子類與父類有同名的、同引數的、完全相同的方法。
例如:class program
}class person//父類
private string name;
public string name
set
}private char gender;
public char gender
set
}private int age;
public int age
set
}//speak方法,加有virtual就成了虛方法
public virtual void speak()
}class teacher:person//繼承person父類
//都是speak方法,但效果與父類的不一樣,實現了多型
public override void speak()
}class student : person//繼承person父類
//都是speak方法,但效果與父類的不一樣,實現了多型
public override void speak()
}---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------
黑馬程式設計師 物件導向
物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...
黑馬程式設計師 物件導向
物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...
黑馬程式設計師 物件導向思想
物件導向的思想 誰有資料,誰就對外提供操作這些資料的方法。例子1 人在黑板畫圓 public class circle private int radius 1 public circle circlecenter,radius public void draw int circlecenter,i...