封装
【定义】
顾名思义,肯定是把东西用箱子“装”起来,再“密封”上。以笔记本为例,我们在使用时才不管里面的构造是什么样,只要能实现我们想要的功能就行了。这就是对笔记本进行了很好的封装。而屏幕,键盘等是跟外界连接的,其相对于对象的属性和方法。所以可得出,封装的定义是:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装。
【优点】
①减少了耦合②类内部的实现可以自由的修改③类具有清晰的对外接口
继承
【定义】
顾名思义,儿子“继承”了父亲的财产。可在这里不同的是,子类继承了父类的属性和方法。而且,
①子类能完全替代父类(拥有父类非private的属性和功能,且可利用重写实现)
②子类可以有自己的特性
举个栗子,老鹰is a 鸟,那老鹰肯定有鸟所有的特性,比如会飞,有羽毛等,但其也有自己独有的特性,比如嘴是尖的。写到这,小编有个问题,那企鹅是鸟的子类吗?不是。因为企鹅不会飞啊~~
【优缺点】
优点:①实现了代码共享②修改实现更容易
缺点:增大了两个类之间的耦合性
【备注】
子类构造方法如果想调用父类的,需用base关键字。关键代码如下:
class Cat : Animal
{
public Cat() : base()
{ }
public Cat(string name) : base(name)
{ }
public string Shout()
{
string result=""
for(int i=0;i<shoutNum;i++)
result +="喵";
return "我的名字叫"+name +""+result ;
}
}
多态
【定义】
不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。比如唱京剧时,有一天父亲生病了,让儿子来代替。那儿子需要做到:
①以父亲的身份出现
②以自己的理解来演(以自己的方式实现)
③不能随意删减(自身特有的属性和方法不能用)
【原理】
当方法被调用时,无论对象是否被转换为父类,都只有位于对象继承链最末端的方法实现会被调用(?)
【备注】
虚方法(virtual)、方法重写(override)
小结
所谓“横看成岭侧成峰”,只有多角度理解和比较知识点,才能更好地掌握。加油