C#--虚方法的使用

虚方法与抽象方法的比较

C#--虚方法的使用_第1张图片

虚方法的使用

1:抽象方法仅仅是声明,没有任何实现内容;抽象方法一般必须在子类中被重写以后才有使用价值
2:针对抽象方法引出的问题:如果需要在父类中提供一个方法,该方法有自己的方法体,子类根据自己的需要决定是否重写该方法,而不是必须重写,这就是 ‘虚方法’
3:使用关键字virtual修改时的虚方法

  1. 父类

  2. C#--虚方法的使用_第2张图片

子类‘Cat’: 没有重写虚方法

C#--虚方法的使用_第3张图片

子类‘Dog’:重写了虚方法

C#--虚方法的使用_第4张图片

子类没有重写虚方法时,直接调用父类的虚方法

C#--虚方法的使用_第5张图片

系统自带虚方法

C#--虚方法的使用_第6张图片

关于Equals()虚方法
1,对于字符串和值类型能够自动比较是否相等。
2,对于对象比较必须重写后才有意义。

C#--虚方法的使用_第7张图片

Equals()默认支持的是‘引用’相等 也就是比较俩个对象的‘地址’,而非对象本身,如果是值类型的数据,则可以直接比较结果。

让俩个对象的属性相等时,就认为俩个对象是一样的,就得重写Equals()这虚方法。


关于ToString()虚方法

C#--虚方法的使用_第8张图片

C#--虚方法的使用_第9张图片

C#--虚方法的使用_第10张图片

重写ToString()虚方法

C#--虚方法的使用_第11张图片

C#--虚方法的使用_第12张图片

C#--虚方法的使用_第13张图片

你可能感兴趣的:(C#高级编程)