• C#基础—访问修饰符


    转载自微软官方文档:

    https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/abstract

    1.abstract

      abstract 修饰符指示被修改内容的实现已丢失或不完整。 abstract 修饰符可用于类、方法、属性、索引和事件。 在类声明中使用 abstract 修饰符以指示某个类仅旨在作为其他类的基类。

    标记为 abstract 的成员,或包含在抽象类中的成员,都必须由派生自抽象类的类来实现。

         

    抽象类具有以下功能:

    • 抽象类不能实例化。

    • 抽象类可能包含抽象方法和访问器。

    • 无法使用 sealed 修饰符来修改抽象类,因为两个修饰符具有相反的含义。 sealed 修饰符阻止类被继承,而 abstract 修饰符要求类被继承。

    • 派生自抽象类的非抽象类,必须包含全部已继承的抽象方法和访问器的实际实现。

    在方法或属性声明中使用 abstract 修饰符,以指示该方法或属性不包含实现。

    抽象方法具有以下功能:

    • 抽象方法是隐式的虚拟方法。

    • 只有抽象类中才允许抽象方法声明。

    • 由于抽象方法声明不提供实际的实现,因此没有方法主体;方法声明仅以分号结尾,且签名后没有大括号 ({ })。

    public abstract void MyMethod();  
    • 实现由方法 override 提供,它是非抽象类的成员。

    • 在抽象方法声明中使用 staticvirtual 修饰符是错误的在静态属性上使用 abstract 修饰符是错误的。 通过包含使用 override 修饰符的属性声明,可在派生类中重写抽象继承属性。

    • 抽象类必须为所有接口成员提供实现。

      实现接口的抽象类有可能将接口方法映射到抽象方法上。 例如:

    interface I
    {
        void M();
    }
    abstract class C : I
    {
        public abstract void M();
    }

    2.sealed

        应用于某个类时,sealed 修饰符可阻止其他类继承自该类。

    abstract 修饰符与密封类结合使用是错误的,因为抽象类必须由提供抽象方法或属性的实现的类来继承。

    对基类中的虚方法或属性的方法或属性使用 sealed 修饰符。 这使你可以允许类派生自你的类并防止它们替代特定虚方法或属性。

    3.virtual

       virtual 关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写

    不能使用virtual修饰符与staticabstractprivate,或override修饰符。

      

    余生很长,愿我们都活成自己喜欢的样子
  • 相关阅读:
    设置QtCreator多核编译
    ZeroMQ研究与应用分析及学习资料
    彻底卸载Visual Studio 2013、Visual Studio 2015
    delphi 动态设置和访问cxgrid列的Properties
    delphi 拷贝文件时有进度显示
    Delphi 连接mysql的功能,去除乱码, 需要设置字符集
    cxGrid1 的使用方法
    Django day12 分页器
    Django day11(一) ajax 文件上传 提交json格式数据
    Django day08 多表操作 (五) 常用和非常用用字段
  • 原文地址:https://www.cnblogs.com/bananana/p/8743554.html
Copyright © 2020-2023  润新知