黑马程序员c#学习5

Windows Phone 7手机开发.Net培训、期待与您交流!

1、继承

   继承的作用在于代码的重用,子类可以除了可以访问定义在基类中可访问的成员外,还可以额外定义自
己特有的成员。如果我们在定义类的时候没有指定父类,那就以为着这个类派生自Object类,Object类是所
有类的基类。

   继承的两种模型

   经典继承 (is-a)关系

   包含/委托 继承   (has-a)关系

经典继承的语法

   语法  class A :class B
 {
  
 }
   A 称为子类 B就称为基类或者父类。

   一个基类可以有多个子类,但是一个类只能有一个父类,C#并不支持多重继承,c#通过接口的概念来实
现相似的功能

   继承中的几个关键字

   this:表示当前对象即自己

   base:表示自己的父类,可以通过base关键字来访问父类中的成员。

   sealed  : 这个关键字指示类不能被继承,即不能派生出其他的子类。c#中的结构就是隐式使用了这个
关键字。

   virtual: (虚方法)使用这个关键字来修饰方法,表示子类可以通过重写这个方法的实现逻辑,这样
就可以实现同一个父类方法在多个子类中的实现逻辑不相同,

   override:  子类在重写父类中用virtual修饰的方法时,必须使用override关键字,指示这个方法时重
写了父类的方法

   as:  用来快速判断某个类型是否和另一个类型相兼容,不兼容则返回一个null

   is: 也用于类型兼容性检测,如果不兼容,则返回一个false。

   子类和父类的相互转换

   子类可以隐式转换为父类,但是父类不能隐式转换成子类,如果我们需要将一个父类存储到一个子类对

象中,我们必须执行强制转换,强制转换可能失败,会带来异常。所以在强制转换前,必须由程序员来控制

该父类对象是否能转换成一个子类对象。


包含/委托 继承   (has-a)关系

    这种类型可以简单理解成类的嵌套。即在一个类的定义中定义另外一个类。

   语法  class A
 {
  class B
  {

  }
 }
 
   注意,这种情况下,B是可以访问A中的私有成员的,在经典继承模型中,子类是不能访问父类中的私有
成员的。

2、异常

    c#中的异常处理机制称为结构化异常处理 SEH   structred exception handing  它的作用在于提供了
一种标准的技术来发送和捕获运行时的异常,并提供给用户比较友好的错误信息。

    c#中异常处理的4个要素

    (1)一个包含异常详细信息的类类型
    (2)一个引发异常类实例的成员
    (3)调用者的一段调用异常类型的代码块
    (4)调用者的一段处理将要发生异常的代码块
  
例 
public void methodA()
{
 try
 {
  int i = Convert.ToInt32("abc");
  }
 catch (Exception ex)
 {

 }
}

上面的代码块中  一个包含异常详细信息的类类型 指得就是catch中的Exception类型的一个对象ex

                一个引发异常类实例的成员  指的就是methodA方法所在的对象

               调用者的一段调用异常类型的代码块  指的就是try代码块中的代码块

               调用者的一段处理将要发生异常的代码块  指的就是catch代码块中的的我们要如何处理
异常的代码,我们可以在代码块中使用ex的相应属性来获取我们需要的异常信息。

注意   Exception 是c#中所有异常类型的基类,我们可以通过继承它来定义自己的异常类型,通过配置相
应的属性来编写我们自己的异常信息。

如何引发和获取异常
使用    try
 {
 }
 catch
 {
 }
语句来引发和捕获异常。将可能导致异常发生的代码放在try代码块中。

 

Windows Phone 7手机开发.Net培训、期待与您交流!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值