C#入门系列 -- 分部类和抽象类
【摘要】 分部类如果一个类的内容很长,则可以将类的声明分割成几个部分来声明,每个部分称为一个分部类。每个分部类的声明中都含有一些类成员的声明,这些分部类可以在一个文件中,也可以在不同文件中。将类分割成几个分部类声明时,每个局部必须被标为partial class,而不是单独的关键字class。除了必须添加类型修饰符partial之外,分部类的声明和普通类声明相同。一般声明格式:partial cla...
分部类
如果一个类的内容很长,则可以将类的声明分割成几个部分来声明,每个部分称为一个分部类。
每个分部类的声明中都含有一些类成员的声明,这些分部类可以在一个文件中,也可以在不同文件中。
将类分割成几个分部类声明时,每个局部必须被标为partial class
,而不是单独的关键字class
。
除了必须添加类型修饰符partial
之外,分部类的声明和普通类声明相同。
一般声明格式:
partial class PartClass
{
成员声明
}
partial class PartClass
{
成员n声明
}
组成所有类的分部类声明必须一起编译,并且这些分部类分开声明和在一起声明应该具有相同的含义。分部类的各个部分必须具有相同的可访问性
代码示例:
class Program
{
static void Main(string[] args)
{
Test t = new Test();
// 分别访问a,b
Console.WriteLine(t.a);
Console.WriteLine(t.b);
Console.ReadLine();
}
}
partial class Test
{
public int a = 0;
}
partial class Test
{
public int b = 0;
}
抽象类
抽象类即为使用abstract关键字
修饰的类。
抽象类的内部可能包括使用abstract
修饰的没有实现的虚方法,称为抽象方法。
抽象类是不完整的类,它只能用做基类来派生出其他类,其中包含的抽象方法必须在每个非抽象派生类中重写。
代码示例:
// 抽象类
abstract class A
{
// 抽象方法
public abstract void F();
// 非抽象方法
public void F1(){ }
}
// 抽象类继承
abstract class B : A { }
// 非抽象类继承
class C : A
{
// 覆盖抽象方法
public override void F()
{
}
}
使用抽象类时需注意:
- 抽象类不能直接实例化,并且对抽象类使用new运算符会导致编译时错误;
- 允许但不要求抽象类包含抽象成员,但是包含抽象成员的类必须声明为抽象类
- 抽象类声明时不能使用
sealed
修饰符; - 当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员;
- 对于每个抽象类,至少应提供一个具体的继承类型。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)