方法重写
-
顾名思义,方法重写就是要重写一些发法,不过不是手改代码,而是诸如子类中去“重写”父类的一个方法,让子类调用方法的时候调用到的是自己重写过的而非父类原有的方法。
-
格式是在方法的声明修饰词中,加一个override做修饰。
-
可被重写的方法有如下三类
虚方法:virtual
抽象方法:abstract
重写方法:override
抽象类
- 抽象类的概念:是由abstract修饰的类
- 特点:
- 不能实例化对象
- 既可以写静态成员也可以写非静态成员
- 可与非抽象类相互继承
- 可写入抽象类
抽象方法
- 抽象方法的概念:是由abstract修饰的方法
- 特点
- 抽象方法只有声明,没有实现
- 仅可写在抽象类里
- 有于其仅可写在抽象类里,所以继承了该抽象类的子类要么是抽象类,要么重写其中所有抽象方法。
抽象类与抽象方法的作用
鉴于继承抽象类的非抽象子类需要重新写其父类中所有抽象方法这一点,我们可以将抽象类与抽象方法组合成为约束子类的一个约束条件。即所有”属于“该抽象类的类均需要满足其的固(抽)定(象)条(方)件(法)。
**举个例子:**定义人的抽象类,在其中定义打招呼的抽象方法。在其之下继承的子类均需要根据各自的情况而重写打招呼(是人就一定会打招呼),那么根据中国人,日本人,美国人又可以分类,所以就这么继承下三个实体类,这三类人打招呼就分别用各自的语言了。
演示代码
abstract class people
{
public abstract void sayHello();
}
class chinese : people
{
public override void sayHello()
{
Debug.Log("你好,朋友。");
}
}
class american : people
{
public override void sayHello()
{
Debug.Log("Hello, friend.");
}
}
class japanese : people
{
public override void sayHello()
{
Debug.Log("こんにちは、友達");
}
}