继承(2)——C#系统学习
接上一篇 继承(1)——C#系统学习
继续看跟继承相关的知识。
2.6 派生类的构造函数
默认情况下,在没有为类定义任何显示的构造函数,编译器就会为所有的类提供默认的构造函数,在后台进行很多操作(初始化)。
但是当我们添加了一个我们自己的构造函数后,就要通过派生类的层次结构高效的控制构造过程,因此必须确保构造过程的顺利进行,不要出现不能按照层次结构进行构造的问题。
其实只要记住:构造函数的调用顺序是先调用System.Object,在按照层次结构由上而下进行,直到编译器要实例化的类为止。还要注意在这个过程中,每个构造函数都初始化它自己的类中的字段,这是他的一般工作方式。在项目开发的时候,我们也要尽可能的按照这个规则进行,这样,再复杂的构造函数层次,也不会乱的。
注意构造函数的执行顺序。基类的构造函数时最先执调用的。也就是说,派生类的构造函数可以在执行过程中调用他可以访问的基类方法、属性和其他成员。
3.1 接口
Microsoft预定义的一个接口System.IDisposable的完整定义。IDisposable包含一个方法Dispose(),用于清理代码:
public interface IDisposable
{
void Dispose();
}
上面展示了接口的定义格式,关键字interface是接口的标志。
应该注意的是:在定义接口中不允许声明成员上的修饰符。接口成员总是公共的,不能声明为virtual和static。如果需要,就应由执行的类来声明。
如何让类派生于接口呢:
class SomeClass:IDisposable
{ public void Dispose()
{
}
}
这个例子就诠释了上面说的注意(如果需要,就应由执行的类来声明),这个例子中,就是在类SomeClass中将Dispose置为public,同样可以定义为其他允许的修饰符。
大家在项目中可以看到继承接口的时候,会发现接口有两种实现方式:隐示实现和显示实现。他们有什么区别呢。
当隐示实现接口的成员是,该成员可以被接口和派生类都可访问。
显示实现,该成员只可以被接口访问。(这也是显示实现的好处)。
这个很好理解,可以在编写代码的时候,留意一下就可以了。
3.2 派生的接口
顾名思义,接口继承接口。
public interface IA
{
//
}
public interface IB:IA
{
//
}
class SomeClass:IB
{
//
}
这样子,类SomeClass必须执行IA和IB的所有方法,没有执行就会编译错误。
最后记住一句话——接口的强大之处在于,他可以引用任何实现该接口的类。(这个很重要)。
到此,继承的基础知识就是这么多了。

浙公网安备 33010602011771号