1、C#中的继承写法
子类应用父类的方法 属性 使用关键字 “base” 。
/* C#中的继承父类的关键字是 “:” */ class Son : Father { }
2、virtual、override、new
C#中不支持隐式重写子类中的方法
virtual 父类中需要注明允许重写的方;
override 子类中必须显示声明该方法是重写的父类中的方法;
new 子类中忽略父类的已存在的方法,“重写该方法;”
//父类方法 class Father { public string SayHello() { return "Hello ~!"; } /* 父类中声明该方法是允许重写的方法(virtual) */ public virtual string SayNo() { return "Hello No ~! "; } } //子类方法 class Son : Father { //new是指“隐藏”,是指子类隐藏了父类的方法,当然,通过一定的转换,可以在子类的对象中访问父类的方法。 //override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方法。 public new string SayHello() { return "!!!!!!!!!!"; } /* 子类中注明该方法是重写方法 (override);父类方法是abstract 修饰时,子类重写该方法也使用(override) */ public override string SayNo() { return "no ~~~~ !!!!"; } }
3、sealed
C# 禁止子类方法重写父类方法的关键字,类似于java 中的 final;