浅夏孤城

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

      当定义一个类时,需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的,针对这种情况C#允许在定义方法时不写方法体(方法体为定义方法里的内容),不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字修饰。例如:abstract void Shout(); //定义抽象方法Shout()   当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类。定义抽象类时需注意,包含抽象方法的类必须声明为抽象类,但抽象类可以不包含抽象方法。另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义的方法,则需要创建一个子类,在子类中实现抽象类的抽象方法。

      如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。定义接口时用interface关键字修饰。 例:

interface  Animal

{

    void Breathe();

    void Run();

}

以上代码中,Animal即为一个接口。发现Breathe()方法和Run()方法并没有方法体,也没有访问修饰符,这是因为接口中定义的方法和变量都包含一些默认修饰符。接口中定义的方法默认使用"public"来修饰。

   由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法。此时需要定义一个类,并实现接口中所有的方法。

   接口特点:1.接口中的所有方法都是抽象的,因此接口不能被实例化 2.一个类可以实现多个接口,被实现的多个接口之间要用逗号隔开 3.一个接口可以继承多个接口,接口之间用逗号隔开。

 

posted on 2019-04-21 16:14  玊尔  阅读(71)  评论(0编辑  收藏  举报