覆写、重写、多态
1、父类对象用子类对象来实例化的,那么,这个新对象只继承父类的成员,子类的成员根本没有实例化。
** 编译时已经决定左边对象的类型,右边的类型只要包含右边类就可以。
2、虚方法:virtual
他只能修饰方法的,这个虚方法是包含实现的,虚方法和抽象方法一样也可以用override来覆写。
这种功能是为将来留出了修改这个方法的可能。
3、覆写:override
当用override覆写之后原方法是已经覆盖掉了,所以不能再被执行,这时父类对象用子类对象来实例化时,对象获得不了已经被覆盖掉的原方法,只能
用override覆写出来的新方法。
override覆写出来的新方法,还可以被它的子类再重新override覆写出来的新新方法,这时该子类来创建期父类的话,这个方法执行的是子类中的新新
方法,原方法和新方法都被新新方法覆盖掉。
4、重载:overlode
方法的名字相同,但参数类型、参数个数、返回类型等不同的方法之间可以重载。
新的版本中已经基本上系统指定完成重载过程。
5、重写:overwrite
子类和父类的方法名称相同,此时子类的方法要new来修饰,就是表示子类的同名方法重写了父类的同名方法,这时父类的方法只能在本类中通过Base对象类调用。
6、局部类型:partial
局部类型是一个纯语言层的编译处理的,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。
(1) 类型特别大,不宜放在一个文件中实现。
(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。
(3) 需要多人合作编写一个类。