zoukankan      html  css  js  c++  java
  • C#整理——关于类

    一:类的访问权限

    1,内部类:默认情况下,类的声明是内部的,即只有当前项目中的代码才能访问它。也可以用internal访问修饰符关键字进行显示指定。

    internal class Myclass
    {
       //class menmbers
    }

    2,公共类:用public指定类是公共的,即可以在其他项目的代码中访问,但在其他项目中访问时别忘了用using把名称空间引入。

    3,C#里类及类成员的修饰符有以下五个如下:
    public   :公开 类及类成员的修饰符 对访问成员没有级别限制
    private : 类私有成员的修饰符 只能在类的内部访问,它的派生类也没有访问权限;
    protected :类A中定义为protected类型的成员只有在类A中和在继承类A的派生类中才能进行访问

    //这是错误的
    public
    class Action { protected int i = 90; } class Tester { static void Main(string[] args) { Action a=new Action(); Console.WriteLine(a.i); Console.ReadKey(); } }
     
    这是对的:

    public class Action { protected int i = 90; public override void action() { Console.WriteLine(i); } }
    
    

       public class Action2 : Action
      {
           public void action2()
          {
              Console.WriteLine(i);
           }
       }

    class Tester
        {
            static void Main(string[] args)
            {
    
                Action a = new Action();
    Action2 a2=new Action2();
    a2.action2(); a.action(); Console.ReadKey(); } }


    internal 类A中定义为internal类型的成员可以被类A所在程序集中的任何类的方法访问;

    二:类的类型

    1,抽象类(abstract)

     抽象类:不能实例化,只能继承,可以有抽象成员,也可以有非抽象成员,(但是如果有抽象成员的类,该类一定要定义成抽象类)。

    抽象类也有公共抽象类和内部抽象类之分;

    注意:当抽象类的派生类没有用 override从写其方法时,此派生类也要定义成抽象类;不能用呢new来重新抽象类的方法,但可以用new来写虚拟的方法;

    三:类的继承

    1,用sealed关键字进行密封(不能被继承)

    2,基类的权限要比派生类的宽松才能被派生类继承,如:内部类可以继承公共基类,但是基类不能内部类

    //下面程序是不合法,不能编译的
    internal
    class ClassBase { //class members } public class MyClass : ClassBase { //class members }

     四:类的方法定义

    1,五个关键字

    virtual——方法可以重写(也叫虚拟方法)

    abstract——方法必须在非抽象类的派生类中重写(中能用与抽象类中)

    override——方法重写了一个基类方法()

    extern——方法定义放在其他地方

    sealed——指定这个方法不能由派生类重写()

  • 相关阅读:
    Python批量删除字符串中两个字符中间值
    2020年大三下学期第十周学习心得
    2020年大三下学期第九周学习心得
    2020.2.4
    2020.2.3
    2020.2.2
    2020.2.1
    签到六(开发)
    签到五(开发)
    签到四(开发)
  • 原文地址:https://www.cnblogs.com/liaojinpiao/p/3204728.html
Copyright © 2011-2022 走看看