先说说面向对象3大特性
封装 //主要是由密封类,public/protect/private/Internal 来实现,通过不同的访问级别来控制
继承 //说的就是派生
多态 //多态性主要有override和overload来实现
override & overload
重载叫overload,重写叫override;
重载某个方法是在同一个类中发生的!
重写是在子类中重写父类中的方法。
1.override:
父类:public virtual string ToString() {return "a";}
子类:public override string ToString() {return "b";}
一般当父类只提供了虚方法,但是方法使用不完整,或者根本没有方法使用时,要用override
2.overload: 同一类中或父子关系类中皆可.
public string ToString() {return "a";}
public string ToString(int id) {return id.ToString();}
比如类中多个构造函数,有默认的,有带参数的
重写(override)是用于重写基类的虚方法,这样在派生类中提供一个新的方法;
重载(overload)是提供了一种机制, 相同函数名通过不同的返回值类型以及参数来表来区分的机制
=====================================================
很本质的区别就是看函数特征:重写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。
函数特征包括函数名、参数的类型和个数。