抽象类里面的三种方法

抽象类里面有三种方法

1.抽象方法

2.普通方法

3.虚方法

 1  abstract class Class1
 2     {
 3         //抽象类Class1里面的抽象方法
 4         public abstract void str1();
 5         //抽象类Class1里面的普通方法
 6         public void str2()
 7         {
 8             Console.WriteLine("普通方法");
 9         }
10         //抽象类Class1里面的虚方法
11         public virtual void str3()
12         {
13             Console.WriteLine("这是虚方法");
14         }
15 
16     }

 

那么,这三种方法的区别是什么呢?

 1 class Class2:Class1
 2     {
 3         //抽象方法str1的重载
 4         public override void str1()
 5         {
 6             Console.WriteLine("抽象方法的重载");
 7         }
 8         //虚方法str3的继承
 9         public override void str3()
10         {
11             base.str3();
12             Console.WriteLine("我重写的str3方法");
13         }
14         //普通方法str2的继承
15         public void str()
16         {
17             base.str2();
18         }
19     }

控制台:

 1   class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Class2 jj = new Class2();
 6             jj.str1();
 7             jj.str3();
 8             jj.str();
 9             Console.ReadKey();
10         }
11 
12     }

运行结果:

 

总结:

1.抽象方法

抽象方法不能有方法体,在被继承之后可以重载方法。而且必须被继承。

2.普通方法

普通方法可以被继承也可以不被继承。与虚方法的区别在于普通方法不能重载,也就是方法体无法改变。

3.虚方法

虚方法可以被继承也可以不被继承。与普通方法的区别在于虚方法继承时要加override关键字而且允许被重载,也就是修改方法体。

 

 

最后一句:请坚持自己的梦想。

 

posted @ 2016-02-13 17:35  蜀云泉  阅读(10294)  评论(0编辑  收藏  举报