您的位置:首页 > 其它

面向对象基本知识

2010-03-03 18:46 330 查看
c#是一种面向对象的编程语言,下面就是c#中的面向对象中比较特殊的性质,列出如下:

1.c#中的应用类型和值类型

c#中的基本数据类型都是值类型,但是数组,类,string是引用类型,注意的是struct是值类型

2.c#中类的继承时不支持多重集成的,这一点是和java是相同,另外提供的是interface,它是允许多重继承的。如果是class A : B,那么B的访问性是不能高于基类的可访问性的。同时在class X同时继承自class和interface时,需要首先书写class,其次才是interface。如果相反得话,编译器会报错的。

3.两个关键字abstract和sealed,首先abstract关键字指出类只能被继承,不能实例化,sealed关键字指出该类是不能被继承的。

4.typeof关键字使用

class X { }

class Program

{

static void Main (String[] args)

{

X x = new X();

if (x.GetType() == typeof(X))

Console.WriteLine("Equal");

Console.ReadKey();

}

}

5.base关键字

class X
{
public X (int n) { }
}

class Y : X
{
public Y (int n) : base (n) // initialize the base class X
{ }
}

6.this关键字

class X
{
public X (int n) { }
// default constructor
public X () : this (0) { }
}

7.readonly关键字,该关键字指出的是在该变量只能在函数的构造函数中初始化。

8.class中的方法,使用下面的关键字来制定该方法的性质。需要特别指明的是sealed指出该函数是不能被派生类修改的。

9.get和set关键字

public int Data
{
get
{
return Data;
}
set
{
Data = value;
}
}
注意在set时,使用了value关键字引用用户提供的属性值。

10.class方法的隐藏和重写
1:方法重写:就是在基类中的方法用virtual关键字来标识,然后在继承类中对该类进行重写(override),这样基类中的方法已经被重写了,已经失去了功能了。当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的继承类的方法。
2:方法隐藏:无论基类中的方法是否用了virtual关键字,继承类中都可以用new关键字(如果不用new的话,不会产生错误,但会生成一个编译警告)将基类中的方法隐藏,所谓隐藏就是隐藏,不像重写,重写就是原来的(基类中)已经不存在了,而隐藏是原来的还存在。所以当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的基类的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: