写点什么

C#入门系列 (二十三) -- 分部类和抽象类

作者:陈言必行
  • 2022 年 7 月 18 日
  • 本文字数:843 字

    阅读完需:约 3 分钟

分部类

如果一个类的内容很长,则可以将类的声明分割成几个部分来声明,每个部分称为一个分部类


每个分部类的声明中都含有一些类成员的声明,这些分部类可以在一个文件中,也可以在不同文件中。


将类分割成几个分部类声明时,每个局部必须被标为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() { }}
复制代码


使用抽象类时需注意:


  1. 抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误;

  2. 允许但不要求抽象类包含抽象成员,但是包含抽象成员的类必须声明为抽象类

  3. 抽象类声明时不能使用sealed修饰符;

  4. 当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员;

  5. 对于每个抽象类,至少应提供一个具体的继承类型。

发布于: 刚刚阅读数: 4
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(二十三) -- 分部类和抽象类_七月月更_陈言必行_InfoQ写作社区