---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
今天针对的学习了面向对象中的继承、多态以及抽象类与接口的概念总结如下:
继承:
继承的目地就是为了代码的重用,子类继承父类己有的特征,这样子类就可以直接描述自己特有的部分就行。比如鸟类可以从动物类继承,这样的好处是,鸟类只需要定义自己特有的字段、方法就可以,而动物类共有的特征在父类继承就可以。在C#中继承用:表示,另外C#中类只能单继承。
在总结多态之前先来看一下抽象类与接口这两个概念
抽象类:
c#中用abstract修饰的类是抽象类,抽象类是抽象的不可被实例化,并且它只能用作于基类,比如说中国人、美国人,它们可以被实例化出一个中国人或一个美国人,而中国人类、美国人类的抽象,是人类,那么人类是不可能被实例化出人的人,只能被继承。所以抽象类也不能被密封,在抽象类中可以包含普通成员与可包含抽象成员,抽象成员只能包含在抽象类中,所有继承抽象类的子类必需实现其抽象成员,比如说在人类中定义说话这个抽象方法(抽象类本身的抽象方法不能有实现),当子类继承时,则必需要重写这个抽象方法,当抽象类中已有实际功能的方法时,则子类中可不必实现。
接口:
接口的声明方式跟类的声明方式相似,只是把class替换为interface,对于它的理解,我在网上查到这么一句话觉的把接口描述的很好,接口是一个契约,它定义了实现接口的类所需要的属性和操作。接口的功能不是为了产生继承层次的模型,而是作为施加在类上的一个强制性的规范。也就是说它不实现任何的方法或属性(接口中可以定义属性,但不能定义字段,因为属性的本质是方法),只是告诉继承它的类至少要实现哪些功能。比如说现在创建一个飞的接口,这样任何实现了这个接口的类,都必须完全实现飞接口。抽象类与它不同的一点是,抽象类可以有共公的实现。
多态:
多态是面象对象的三大特性之一,简单的说就是同一事物表现出的多种形态。比如说在杨老师的视频中,人有问好的行为,你只需要调用它的SayHello()方法,然后它就可以问好,而不需要分别的来调用中国人的问好方法、韩国人的问好方法、日本人的问好方法,因为人是一个抽象的事物,只要知道让他SayHello就行了,至于每个国家的人,就会各用各的方式来进行问好。
多态的执行顺序
public abstractclass Person
{
public virtual void SayHello()
{
console.writeline("您好...");
}
}
public classChinese:person
{
public override void SayHello()
{
console.writeline("中国人,您好...");
}
}
static voidmain(string[] args)
{
Person p=new Chinese();
//p是person类型的变量
p.SayHello();
//编译器会先去看person.sayhello,方法,发现是virtual
//所以去看p指向的对象的实际类型chinese有没有覆盖sayhello方法,如果有
//则调用实际类型的方法
console.readkey();
}
---------------------- Windows Phone 7手机开发 、 .Net培训 、期待与您交流! ----------------------