zoukankan      html  css  js  c++  java
  • C#的Class的几个修饰符

    none or internal     类只能在当前的工程中访问

    Public                    类可以在任何地方访问

    abstract or internal abstract   类可以在当前的工程中访问,不能实例化,只能继承

    Public abstract     类可以在任何地方访问,不能实例化,只能继承

    sealed or internal sealed    类只能在当前的工程中访问,只能实例化,不能继承

    Public sealed     类可以在任何地方访问,只能实例化,不能继承

    1、用于关键字class的修饰符

    1)internal 默认修饰符,指定类为内部的,只有当前工程中的代码才能访问它

    2)public 指定类为公共的,其它工程中的代码也可以访问它

    3)abstract 指定类为抽象的,不能实例化,只能继承,可以有抽象成员

    4)sealed 密封的,不能继承

    其中,internal和public是一对互斥关系,abstract和sealed是一对互斥关系,两对之间可以互相搭配使用。

    默认类定义如下:

    class A{}即相当于internal class A{},internal通常是省略的。

     

    2、用于关键字interface的修饰符

    1)public和private 这对访问修饰符和关键字class的定义是一样的,由于接口的公共特性通常使用public

    2)abstract和sealed 这对修饰符不能在接口中使用,因为它们对接口毫无意义

     

    当定义派生类时,如果同时有基类和接口,那么先写基类再写接口,用逗号分开,只能继承一个基类但可以有多个接口,如:

    class DerivedClass:BaseClass,IInterface1,IInterface2

    {}

    接口定义和继承如下:

    public interface IMyInterface:IInterface1,IInterface2

    {}

     

    3 、用于类成员(包括字段、属性、方法)的修饰符

    1)public--成员可以由任何代码访问

    2)private--成员只能由本类中的代码访问(默认值)

    3)internal--成员只能由定义它的工程(装配件)内部的代码访问

    4)protected--成员只能由类或派生类中的代码访问

    最后两个关键字可以合并使用,即protected internal,只能由工程(装配件)中类和派生类的代码访问。此外与以上关键字并行的还有static,表示类的静态成员,而不是类的实例成员。字段还可以定义为realonly,只能在定义时或构造函数中赋值并赋值后不可更改。

     

    4、类方法还有另外的关键字定义

    1)virtual--方法可以重写

    2)abstract--方法必须重写(只用于抽象类中,如果类方法定义了abstract则class也必须追加abstract)

    3)override--方法重载了一个基类方法(如果方法被重载则必须使用该关键字)

    4)extern--方法定义在其他地方

    另:派生类的类方法还可以使用new来隐藏基类方法;通过this指向当前类实例引用,通过base关键字指向基类实例引用。

  • 相关阅读:
    关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要
    EXTJS 5 学习笔记2
    EXTJS 5 学习笔记1
    关于java.lang.String理解中的一些难点
    关于centos7中使用rpm方式安装mysql5.7版本后无法使用root登录的问题
    大数据专栏
    过采样中用到的SMOTE算法
    linux后台执行命令:&和nohup
    P,R,F1 等性能度量(二分类、多分类)
    word2vec模型cbow与skip-gram的比较
  • 原文地址:https://www.cnblogs.com/dzhf/p/7623699.html
Copyright © 2011-2022 走看看