黑马程序员_面向对象学习总结(二)

---------------------- 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培训 、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值