标签:
什么继承?
继承是分类的问题,继承反映了类和类之间的关系。
使用继承:
class a:b{}
调用基类的构造器:
class a:b{ public a():base() {} }
类的赋值:
基类可以引用派生类的对象;
使用new关键字:
派生类中的方法会屏蔽基类中具有相同签名的方法,此时会发出一条警告,使用new关键字可以消除此警告;
声明virtual方法:
设计成能被重写的方法叫做virtual方法;
class a{ public virtual void sb() { } }
声明override方法:
class b:a{ public override void sb() { base.sb(); ... } }
不能使用virtual或override声明一个private方法;
两个方法的签名与返回类型要完全相同;
两个方法必须具有相同的可访问性,基类的可访问性为public则派生类中的访问级别要小于对于public
只能用override重写一个virtual方法;
加入派生类不使用override关键字,则会与new关键字的情况相同
一个override方法将隐式成为一个virtual方法;
virtual方法会产生多态性。
理解protected:
protected的变量与方法只能在类与该类中的派生类中访问。
扩展类型:
//扩展方法允许通过附加的静态方法来扩展现有的类型,任何语句一旦引用被扩展类型的数据,就能立即开始使用这些静态方法,扩展方法是在静态类中定义的,要扩展的类型必须是方法的第一个参数,而且必须附加一个this关键字。 static class Uti{ public static int a(this int i) { return -i; } } int x=10; int b=x.a();
标签:
原文地址:http://www.cnblogs.com/hanshuidecangsanggan/p/4389577.html