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——指定这个方法不能由派生类重写()

posted @ 2013-07-22 09:48  liaojinpiao  阅读(177)  评论(0编辑  收藏  举报