C#第一篇

来自<C#开发课堂实录>
1,多态建立在继承的基础上,除了在基类的基础上增加数据和方法,还可以通过不同的方式,将基类中的方法重新定义。
2,密封类是一种独立的,不能被继承的类,通常用来限制扩展性。它的成员是孤立的,只能内部使用。但密封类可以继承其他类,属于基类的终止。
3,继承是指一个类的非私有成员被其他的类当做自己的成员使用来扩展类的功能。
4,封装类与静态类比较
public class B
{

}
public sealed class A :B
{

}
public static class C
{

}

密封类 静态类
可实例化 没有实例
由对象调用 由类调用
可以继承基类 无法继承类

5,虚方法又称为虚函数,是一种可以被派生类实现、重载或重写的方法。虚方法同选择语句一样有执行条件,根据不同的情况有不同的实现。一般方法在编译时就静态地编译到执行文件中,其相对地址在程序运行期间是不会发生变化的;而虚函数在编译期间并不能被静态编译,它的相对地址是不确定的。
虚方法根据运行时期对象实例来动态判断要调用的函数,其中声明时定义的类叫声明类,执行时实例化的类叫实例类。
6,抽象类中的抽象成员只有声明部分,没有实现部分。还可以有非抽象成员。

public abstract class A
{
public abstract int B();
}

public class C:A
{
public override int B()
{
//在这个地方实现
}
}
7,类除了可以进行继承,其成员还有多种使用形态,主要表现在方法的多态性。
(1)定义同名但参数列表不同的方法,称为方法的重载
(2)定义同名且参数列表也相同的方法,并且父类中的方法用abstract/virtual进行修饰,称为方法的覆盖。子类中的同名方法用override进行了修饰,如虚方法和抽象类的覆盖
(3)定义同名且参数列表也相同的方法,其父类中的方法没有用abstract/virtual进行修饰,称方法隐藏,需要在子类新建的同名方法前面用new修饰符

8,静态多态:方法重载等;动态多态:继承,虚函数的实现等。
9,重写是针对方法名相同,参数列表也相同的方法的多态。通常在子类中重写基类的方法。(隐藏和覆盖)

10, 隐藏和覆盖都不会改变基类中的方法,只是反映在派生类中的方法和派生类对象的调用上

11,覆盖通常针对抽象类,抽象类成员和虚方法。

12,重写有以下几个特点:
(1)静态方法、密封方法和非虚方法不能被覆盖
(2)非虚方法可以被隐藏,但静态方法和密封方法不能被隐藏
(3)重写方法和已重写了的基类方法具有相同的返回类型
(4)重写声明和已重写了的基类方法具有相同的声明可访问性。重写声明不能更改所对应的虚方法的访问性。
如果已重写的基方法是protected internal,并且声明它的程序集不是包含重写方法的程序集,则重写方法声明的可访问性必须是protected。
13,接口的成员可以是方法、属性、索引器或者事件,而不能包括常量、字段、运算符、构造函数、析构函数或类型等,也不能包含任何类的静态成员。

14,接口中定义的方法只能包含其声明,不能包含其具体实现,即用空的方法体。
15,接口中的属性只能申明具有哪个访问器(get或set访问器),而不能实现该访问器。get是可读,set是可写。
int productID
{
get;
}

16,索引器和属性一样,
int this[int index]
{
get;
set;
}
17,接口中的事件的类型必须是Eventhandler,同样是只能包含声明不包含具体实现。
event EventHandle Expired; //声明一个事件

18,实现接口与类的继承相同。

19,线程是程序执行流的最小单元,用于完成一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程~~线程的优点是可移植性高,可并发执行以及共享内存空间。线程的缺点是执行效率低于进程~~ 。

20,每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,可以在程序里独立执行,也可以理解为代码运行的上下文,所以线程基本上是轻量级的进程,负责单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行

猜你喜欢

转载自blog.csdn.net/qq_31648921/article/details/83573777