第 7节、覆盖虚接口
有时候我们需要表达种抽象东西它是些东西概括但我们又不能真正看到它成为个实体在我们眼前出现为此面向对象编程语言便有了抽象类概念C#作为个面向对象语言必然也会引入抽象类这概念接口和抽象类使您可以创建组件交互定义通过接口可以指定组件必须实现思路方法但不实际指定如何实现思路方法抽象类使您可以创建行为定义同时提供用于继承类些公共实现对于在组件中实现多态行为接口和抽象类都是很有用工具
个抽象类必须为类基本类列表中列出接口所有成员提供实现但是个抽象类被允许把接口思路方法映射到抽象思路方法中例如
erface IMethods {
void F;
void G;
}
abstract C: IMethods
{
public abstract void F;
public abstract void G;
}
这里 IMethods 实现把F和G映射到抽象思路方法中它们必须在从C派生非抽象类中被覆盖
注意显式接口成员实现不能是抽象但是显式接口成员实现当然可以抽象思路方法例如
erface IMethods
{
void F;
void G;
}
abstract C: IMethods
{
void IMethods.F { FF; }
void IMethods.G { GG; }
protected abstract void FF;
protected abstract void GG;
}
这里从C派生非抽象类要覆盖FF 和 GG 因此提供了IMethods实际实现
最新评论