1、重写
派生类重写基类的方法或者属性,使用关键字(override),
关键:
- 父类的被重写方法必须使用 virtual、override,abstract 关键字进行修饰
- 重写的方法参数必须与被重写方法一样
2、重载
不同的函数使用相同的函数名,参数不同。
3、抽象类和接口的区别
相同点:
- 都不能实例化
- 都可以拥有抽象方法、属性、索引器
-
-
- 属性名可自定义,索引器必须以this命名。
- 属性可以为实例或静态,索引器必须是实例的。
- 索引器有索引参数列表,而属性没有。
-
-
- 都可以拥有具体的方法实现(记得之前接口内部的方法是不允许有具体实现的,但是我发现core3.0支持这种写法了)
不同点
- 派生类只能继承一个抽象类,但是可以继承多个接口
- 派生类必须实现继承的抽象类或者接口的所有抽象成员
一句话总结:抽象类可以理解为 is a,接口可以理解为 like a 或者说 can do;