abstract&virtual&override
来源:互联网 发布:大学物理实验报告数据 编辑:程序博客网 时间:2024/06/05 13:32
一直以来,对这三个关键字都没有完全的了解,今天加会班,写篇文章来梳理清楚.吃得好饱,哈哈.
namespace test{ abstract public class Thinking { } class Program { static void Main() { // 错误,无法创建抽象类的实例. Thinking thingking = new Thinking(); } }}namespace test{ abstract public class Thinking { // 可以定义抽象类的实例成员,继承自该抽象类的子类继承这些实例. private int timePast; public int TimePast { get { return timePast; } set { timePast = value; } } public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { } class Program { static void Main() { Man me = new Man(); me.Do(); me.TimePast = 5; } }}namespace test{ abstract public class Thinking { // 无法定义抽象类的抽象成员. abstract public void Do() { Console.WriteLine("I'm thingking..."); } }}namespace test{ abstract public class Thinking { // 可以在抽象类中使用virtual关键字来定义方法. virtual public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { // 在该类中不重新定义Do方法,该类将包含Thingking的Do方法. } class Program { static void Main() { Man me = new Man(); me.Do(); } }}namespace test{ abstract public class Thinking { // 可以在抽象类中使用virtual关键字来定义方法. virtual public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { // 直接定义Do,将隐藏Thingking类中的Do方法. public void Do() { Console.WriteLine("I'm touching myself..."); } } class Program { static void Main() { Man me = new Man(); me.Do(); } }}namespace test{ abstract public class Thinking { // 可以在抽象类中使用virtual关键字来定义方法. virtual public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { // 直接定义Do,将隐藏Thingking类中的Do方法. public void Do() { // 可以显示使用base.Do完成对Thingking中Do方法的调用. base.Do(); Console.WriteLine("I'm touching myself..."); } } class Program { static void Main() { Man me = new Man(); me.Do(); } }}namespace test{ abstract public class Thinking { // 可以在抽象类中使用virtual关键字来定义方法. virtual public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { // 显示地对Thingking类中的Do方法进行追加定义. virtual public void Do() { // 可以显示使用base.Do完成对Thingking中Do方法的调用. base.Do(); Console.WriteLine("I'm touching myself..."); } } class Program { static void Main() { Man me = new Man(); me.Do(); } }}namespace test{ abstract public class Thinking { // 可以在抽象类中使用virtual关键字来定义方法. virtual public void Do() { Console.WriteLine("I'm thingking..."); } } public class Man : Thinking { // 重新定义Thingking类中的Do方法. override public void Do() { // 亦可使用base.Do完成对Thingking类中Do方法的显示调用. base.Do(); Console.WriteLine("I'm touching myself..."); } } class Program { static void Main() { Man me = new Man(); me.Do(); } }}namespace test{ public class Thinking { // 无法在非抽象类中定义抽象成员. abstract public void Do(); }}例子举完了.说几句.abstract用来定义抽象类,以及在抽象类中定义抽象方法.virtual用来对父类同名方法的追加定义,override完成对父类同名方法的重新定义.其实并不难,并且我捋顺得并不清晰.也许吧,不害怕它就好了,没有想象中那么可怕.确实是这样,恐惧比什么都可怕.这两天好累的,尽快地融入项目,看代码,照猫画虎,学到了不少.加油吧,我心态一直不错,并且一直坚持着.为什么总是借机会说点心里话呢?呵呵.
- abstract、virtual、override、new
- abstract&virtual&override
- abstract virtual override 虚基类
- abstract、virtual与override
- abstract、virtual、override、new說明
- c#中的virtual/override/abstract
- abstract、virtual、override、new说明
- abstract、virtual、override、new说明
- virtual、override、static、abstract、sealed
- abstract、virtual、override、new说明
- new virtual abstract sealed override
- abstract、virtual、override 和 new
- abstract、virtual、override 和 new
- abstract virtual override new 小记
- 转:abstract、virtual、override…
- c#virtual,abstract,new,override
- 【转】abstract、virtual、override、new說明
- C#中virtual,abstract,override修饰符
- Test ehcache
- Axis2开发问题与解决
- ASP.NET MVC3的伪静态实现
- AndroidManifest.xml文件解析
- 如何理解面向对象?
- abstract&virtual&override
- hibernate基础-fetch抓取
- 关于JAVA的路径
- 用js动态改变css样式表
- WP7 MultiScaleImage和DeepZoom
- Java多核线程笔记-volatile的原理与技巧
- 巧妙利用ascii函数实现字符串匹配
- 常用正则表达式(包括中文匹配)
- HTML5应用——生日快乐动画之星星