C#入门系列 -- 分部类和抽象类

举报
陈言必行 发表于 2022/03/19 13:54:18 2022/03/19
【摘要】 分部类如果一个类的内容很长,则可以将类的声明分割成几个部分来声明,每个部分称为一个分部类。每个分部类的声明中都含有一些类成员的声明,这些分部类可以在一个文件中,也可以在不同文件中。将类分割成几个分部类声明时,每个局部必须被标为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()
    {
       
    }
}

使用抽象类时需注意:

  1. 抽象类不能直接实例化,并且对抽象类使用new运算符会导致编译时错误;
  2. 允许但不要求抽象类包含抽象成员,但是包含抽象成员的类必须声明为抽象类
  3. 抽象类声明时不能使用sealed修饰符;
  4. 当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员;
  5. 对于每个抽象类,至少应提供一个具体的继承类型。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。