public override void Show() { Console.WriteLine("Type: Student"); base.Show(); Console.WriteLine("Major: " + major); }中override的作用
时间: 2024-03-18 16:45:20 浏览: 3
在C#中,`override`关键字表示当前函数是从基类中继承来的函数,并且在当前派生类中进行了重写。也就是说,`override`关键字用于实现函数的多态性。
在上面的程序中,`Student` 和 `Teacher` 类都继承了 `Person` 类,并且重写了 `Show()` 函数。在 `Show()` 函数中,我们调用了 `base.Show()` 函数,它表示调用基类的 `Show()` 函数,这样就能够显示基类的信息。然后,我们在派生类中添加了特定的信息(如 `Major` 或 `Subject`),以便更好地描述派生类的特征。
由于我们在 `Student` 和 `Teacher` 类中重写了 `Show()` 函数,所以在使用对象数组进行多态调用时,会自动调用相应派生类的 `Show()` 函数,而不是基类的 `Show()` 函数。这就是多态性的体现,它使得我们可以使用统一的方式对不同类型的对象进行操作。
相关问题
输出结果abstract class BaseClass { public virtual bool MethodA() { return true; } public virtual string MethodB() { return "0"; } } class Class1:BaseClass { public override bool MethodA() { return false; } public override string MethodB() { return "1"; } } class Class2:Class1 { new public string MethodB() { return "2"; } } class MainClass { public static void Main(string[] args) { Class2 o = new Class2(); Class2 q = new Class2(); Console.WriteLine(o.MethodA()); Console.WriteLine(q.MethodB()); } }
输出结果为:false和"2"。
解释:
- Class2是从Class1继承而来的,而Class1又是从BaseClass继承而来的。
- Class2重新定义了MethodB,使用了new关键字,这意味着Class2中的MethodB将会隐藏从BaseClass和Class1继承而来的MethodB。
- 当调用o.MethodA()时,由于Class2没有重写MethodA,所以会调用从Class1继承而来的MethodA,其返回值为false。
- 当调用q.MethodB()时,由于Class2重新定义了MethodB,所以会调用Class2中的MethodB,其返回值为"2"。
implementation 'com.clj.fastble:FastBleLib:2.3.4'用法
要在你的 Android 项目中使用 FastBleLib 库,需要在应用的 build.gradle 文件中添加以下依赖声明:
```
dependencies {
implementation 'com.clj.fastble:FastBleLib:2.3.4'
}
```
添加依赖声明后,你就可以在你的代码中使用 FastBleLib 提供的 API 来进行 BLE 相关的操作了。例如,以下代码片段演示了如何扫描周围的 BLE 设备:
```java
FastBleManager.getInstance().scanBluetooth(new BleScanCallback() {
@Override
public void onScanStarted(boolean success) {
// 扫描开始
}
@Override
public void onScanning(BleDevice bleDevice) {
// 扫描到一个设备
}
@Override
public void onScanFinished(List<BleDevice> scanResultList) {
// 扫描结束
}
});
```
更多使用方法可以参考 FastBleLib 的官方文档。