C#关键字--修饰符

  1. 访问修饰符:public、protected、private、internal
    用于指定声明的成员或类型的可访问性。
    public:不受限
    protected:仅限于包含类或包含类派生的子类
    internal:当前程序集
    protected internal:internal 或 protected ,两者求并集
    private:当前包含类型


  2. abstract
    指示被修改内容的实现已丢失或不完整。
    可用于修饰类、方法、属性、索引和事件。

    • 抽象类
      抽象类不能实例化
      包含0个或1个以上抽象方法和访问器(属性) ,抽象类中不一定有抽象方法或抽象访问权(属性)
      不能用sealed修饰,sealed和abstract具有相反的含义。sealed类不能被继承,abstract类要求被继承
    • 抽象方法和抽象属性
      指示方法或属性不包含实现
      抽象方法是隐式的虚方法
      只有抽象类中才有抽象方法声明
      通过override在派生类中重写替代抽象方法或属性
      抽象类必须为所有实现的接口提供实现,可将接口映射到抽象方法上,例如:
       
      
      interface I 
      
      { 
      
      void M(); 
      
      } 
      
      abstract class C : I 
      
      { 
      
      public abstract void M(); 
      
      } 
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
  3. sealed
    断子绝孙符
    修饰类时,类不可以被继承
    修饰方法/属性时,子类不能替代此方法或属性


  4. virtual
    用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写
    虚成员的实现可由派生类中的替代成员更改
    虚方法就是有默认实现的抽象方法
    在修饰方法时override和new的区别:
    override只能重写virtual、abstract、override修饰的方法
    new是隐藏,可通过类型转换调用到基类的方法。
    override是重写,无论是派生类还是基类都会找到派生类方法。
    new可以隐藏基类中的普通方法,也可以隐藏基类中的虚方法。
    new可以修改方法可访问性,而override不可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值