技术文摘
C#虚函数实例演示学习
2025-01-02 03:01:54 小编
C#虚函数实例演示学习
在C#编程中,虚函数是面向对象编程的一个重要概念,它允许在派生类中重写基类的方法,从而实现多态性。下面通过一个具体的实例来演示C#中虚函数的使用。
创建一个基类Shape,它包含一个虚函数CalculateArea,用于计算形状的面积。代码如下:
class Shape
{
public virtual double CalculateArea()
{
return 0;
}
}
接下来,创建两个派生类Circle和Rectangle,它们都继承自Shape类,并分别重写了CalculateArea函数。
对于Circle类:
class Circle : Shape
{
public double Radius { get; set; }
public override double CalculateArea()
{
return Math.PI * Radius * Radius;
}
}
对于Rectangle类:
class Rectangle : Shape
{
public double Width { get; set; }
public double Height { get; set; }
public override double CalculateArea()
{
return Width * Height;
}
}
在主程序中,可以这样使用:
class Program
{
static void Main()
{
Shape circle = new Circle { Radius = 5 };
Shape rectangle = new Rectangle { Width = 4, Height = 6 };
Console.WriteLine("圆的面积:" + circle.CalculateArea());
Console.WriteLine("矩形的面积:" + rectangle.CalculateArea());
}
}
在上述代码中,通过将派生类的实例赋值给基类类型的变量,然后调用虚函数CalculateArea,根据对象的实际类型来执行相应的重写方法,实现了多态性。
虚函数的优点在于它提供了一种灵活的方式来扩展和修改代码。当需要添加新的形状类时,只需继承自Shape类并重写CalculateArea函数,而不需要修改现有的代码。
需要注意的是,在使用虚函数时,基类中的虚函数必须使用virtual关键字修饰,派生类中重写的函数必须使用override关键字修饰。这样才能确保正确的重写行为。
通过这个实例,我们对C#中的虚函数有了更深入的理解和掌握,能够更好地运用虚函数来实现面向对象编程中的多态性。
- 网络Windows Server实践测试四
- Vuex中sub函数未定义错误:是版本问题还是其他原因
- 怎样从 JSON 数据里筛选出符合特定条件的集合
- Vue3 响应式源码中 Reflect.set 先赋值再返回能解决更新问题的原因
- vue-material-year-calendar组件实现日历所有月日显示功能的方法
- 优化代码缩进获取路径层级的方法
- 构建酷炫项目学习Tailwind CSS
- PostCSS实现Web端与移动端一致尺寸大小的方法
- vue-material-year-calendar打造全月日显示日历及自定义外观方法
- Vite打包时怎样排除特定日志输出如console.log
- Vue打包项目在WebView2中无法接收C#数据的解决方法
- Vuex报错sub函数未定义如何解决
- vue-material-year-calendar插件中activeDates.push后日历未选中问题的解决方法
- Vue3 响应式系统用 Reflect.set 设置对象属性,怎样保证所有更新正确触发
- Object.defineProperty与Proxy双重劫持querySelector时出现两次执行的原因