c语言sscanf函数的用法是什么
256
2022-09-01
C# virtual, base, override
先看这样一段代码:
namespace @virtual{ class A { public void print() { Console.WriteLine("base"); } } class a :A{ public void print() { Console.WriteLine("derive"); } } class Program { static void Main(string[] args) { A p = new A(); p.print(); p = new a(); p.print(); Console.ReadKey(); } }}
output:
base
base
virtual修饰基类的print()再在子类中 override重写print(),那样才能调用派生类的方法
namespace @virtual{ class A { public virtual void print() { Console.WriteLine("base"); } } class a :A{ public override void print() { Console.WriteLine("derive"); } } class Program { static void Main(string[] args) { A p = new A(); p.print(); p = new a(); p.print(); Console.ReadKey(); } }}
output:
base
derive
它达到的效果和下面的代码是一样的:
namespace @virtual{ class A { public void print() { Console.WriteLine("base"); } } class a :A{ public void print() { Console.WriteLine("derive"); } } class Program { static void Main(string[] args) { A p = new A(); p.print(); a p1 = new a(); p1.print(); Console.ReadKey(); } }}
output:
base
derive
base则是对在派生类里对基类成员的访问。在基类数据成员或方法被子类同名成员隐藏的情况下,它能发挥巨大的作用。
namespace @base{ class A { public void print() { Console.WriteLine("base"); } } class a :A{ public void print() { Console.WriteLine("derive"); } public void fatherPrint() { base.print(); } } class Program { static void Main(string[] args) { a p1 = new a(); p1.fatherPrint(); p1.print(); Console.ReadKey(); } }}
output:
base
derive
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~