C#例题集
收集一些从网上看到的例题
1.抽象类
抽象类不能被实例化
一个抽象类只能通过接口和作为其它类的基类使用
抽象方法的声明只能在抽象类中
抽象方法必定不能实现(方法带一对{}都不行)
当一个子类集成自抽象类时,必须实现其中的抽象方法(override重写)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public abstract class Demo 2 { 3 public Demo() 4 { 5 this.print(); 6 } 7 8 public abstract void print(); 9 } 10 11 public class DemoImple : Demo 12 { 13 private int x = 10; 14 public DemoImple(int x) 15 { 16 this.x = x; 17 } 18 19 public override void print() 20 { 21 Console.WriteLine("x=" + this.x); 22 } 23 } 24 25 class Program 26 { 27 static void Main(string[] args) 28 { 29 new DemoImple(100); 30 //输出为x=10 31 Console.ReadKey(); 32 } 33 }
输出为x=10
首先当子类实例化时先调用的是父类(抽象类)的构造函数,然后这个时候x还是10,当print后才调用DemoImpl的构造函数,这个时候虽然将x设置为100,但是已经没有print了