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 |
除密封外都可以重写 | 必须在派生类中给出具体实现 |
相关文章推荐
- 【原创】抽象类和接口的区别(C#)
- C#中抽象类和接口的区别与使用
- C# 抽象类 和 接口 的区别理解
- .天轰穿C# -vs2010 - 04面向对象的编程之接口 VS 抽象类 【原创】
- C#中抽象类和接口的区别
- C#中抽象类和接口
- C#中的抽象类的特征
- 7-c#接口和抽象类的区别
- C#中的接口和抽象类
- C#多态实现之抽象类
- C#中的接口和抽象类的比较
- 抽象类、密封类及类成员(C#)
- 学习:c#中抽象类和接口的相同点跟区别(转)
- 关于C#中的抽象类、抽象方法和虚方法的探究
- C#之美―抽象类与接口孽缘
- C#接口和抽象类的经典示例与比对
- C#OOP之八 继承 接口和抽象类
- [C#]关于 抽象类中的 抽象事件(将子类中的事件内容传递给基类)
- C#中抽象类和接口的区别(转)
- c#中抽象类和接口的相同点跟区别