面向对象基本知识
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的话,不会产生错误,但会生成一个编译警告)将基类中的方法隐藏,所谓隐藏就是隐藏,不像重写,重写就是原来的(基类中)已经不存在了,而隐藏是原来的还存在。所以当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的基类的方法。
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的话,不会产生错误,但会生成一个编译警告)将基类中的方法隐藏,所谓隐藏就是隐藏,不像重写,重写就是原来的(基类中)已经不存在了,而隐藏是原来的还存在。所以当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的基类的方法。
相关文章推荐
- python面向对象基本知识
- Java基本知识(连载)-面向对象入门
- 面向对象基本知识
- 黑马程序员-面向对象基本知识复习(1)
- 面向对象的基本知识
- 面向对象基本知识
- Java基础知识:面向对象-基本概念
- c#面向对象基本知识
- 面向对象三大基本特性和五大基本原则
- 面向对象基本概念(一)
- 黑马程序员------Java基础(面向对象和基本特性)
- 第四章 JAVA面向对象程序设计基础知识--知识回顾与疑点解析
- 面向对象的基本概念
- 面向对象基本概念
- numpy数组 ndarray对象基本知识
- PHP面向对象知识总结
- 面向对象三大基本特性,五大基本原则
- 一些基本知识(四)(类和对象)
- java面向对象基础知识总结
- 黑马程序员-------面向对象基础知识2