C# 虚方法的重载 new 与 virtual
2024-08-21 05:52:45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace OverrideTest
{
class A
{
private String username;
public void method1()
{
Console.WriteLine("A.method1");
}
//虚函数能够被重载,能够多态
public virtual void method2()
{
Console.WriteLine("A.method2");
}
}
class B : A
{
//调用这个函数名的时候,查看当前的编译类型是什么,根据这个编译类型调用编译类型的方法。
public new void method1()
{
Console.WriteLine("B.method1");
}
//调用这个函数名的时候,查看当前的运行时类型是什么,根据这个对象的实际类型调用它的方法。
public override void method2()
{
Console.WriteLine("B.method2");
} } class Test {
public static void Main() {
B b = new B();
A a = b;
a.method1();
a.method2();
b.method1();
b.method2();
Console.Read();
}
} }
输出结果:
A.method1
B.method2
B.method1
B.method2
最新文章
- backup1:开始数据库备份
- 在Abp中集成Swagger UI功能
- Java-数组练习4
- 汇编学习(六)——代码转换程序
- DbInitializer.cs初始化过程中context.entityName.Add()遇到的类型不匹配错误
- System.out.println调试输出
- Leetcode006 ZigZag Conversion
- ubuntu glusterfs 配置调试
- Spring Boot特性(转)
- 【iOS】使用SQLite与FMDB
- java基础概略总结
- linux 常用命令之一
- Gym101473A Gym101473E Gym101473F-前缀和
- 架构之微服务(zookeeper)
- BZOJ_1697_[Usaco2007 Feb]Cow Sorting牛排序_贪心
- POJ 3304 Segments(直线)
- js中数组常用方法总结
- Android--使用剪切板在Activity中传值
- linux 获取帮助的命令
- Java_myBatis_XML代理_动态SQL