您的位置:首页 > 编程语言 > C#

C#中的抽象类

2014-02-24 16:23 218 查看
 

       抽象是一种很好的方法,而在C#中也为我们提供了一种很好的抽象类供我们使用。

 

   定义:

   使用的时候只需要在一般类定义的前面加上关键字abstruct。例如

  

abstract class parent
{
public void sleep()
{
Console.WriteLine("haode");

}

public abstract void eat();  //抽象方法没有具体的实现

}

class child:parent
{
public override void eat()
{
Console.WriteLine("吃好一点");  //必须在继承中具体实现抽象方法
}
}

 

  使用起来就这么简单,但是也要注意以下抽象类的特性。

      1.不能被实例化

      2.抽象类下的抽象方法没有具体的实现,但在派生类中必须实现

      3.抽象类就是用来继承的,因此不能用sealed修饰符修饰抽象类。

 

  写到这里不知大家感觉是不是与继承类中的虚方法特别的相似。下面就谈一下两者的区别。先看两个例子。

 

class person
{
public void jump() { }    //
//public abstract void drink();  普通类中不能包含抽象类
}

abstract class people   //抽象类
{
public abstract void eat();
}

class zhangsan:people   //抽象类只能被继承,不能实例化
{
public override void eat()
{
Console.WriteLine("吃点什么");//必须有具体的操作
}
}


   总结:

      

虚方法

抽象方法

有方法体

不允许有方法体

用virtual修饰

用abstract修饰

可以被子类override

必须被子类override

除密封外都可以重写

必须在派生类中给出具体实现

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: