zoukankan      html  css  js  c++  java
  • 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修饰符。

      

    余生很长,愿我们都活成自己喜欢的样子
  • 相关阅读:
    Eclipse 远程调试
    大数据处理方法bloom filter
    sicily 1259 Sum of Consecutive Primes
    sicily 1240. Faulty Odometer
    sicily 1152 简单马周游 深度优先搜索及回溯算法
    sicily 1050 深度优先搜索解题
    sicily 1024 邻接矩阵与深度优先搜索解题
    sicily 1156 二叉树的遍历 前序遍历,递归,集合操作
    sicily 1443 队列基本操作
    sicily 1006 team rankings 枚举解题
  • 原文地址:https://www.cnblogs.com/bananana/p/8743554.html
Copyright © 2011-2022 走看看