C#编程-实现重写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现重写

实现派生类中基类的成员称为重写。在C#中,可以重写方法、属性和索引器。
重写是多态性的一种形式,因为它使您能够创建具有相同名称和不同功能的不同代码块。


重写函数

在面向对象编程中,子类可以提供超类中已定义的专门版本的函数。这称为函数重写。

函数重写是通过向函数提供相同的名称、参数和返回类型实现的。子类中的实现替换或重写其超类中的实现。

调用的函数版本取决于用于调用该函数的对象。如果超类的对象用于调用方法,那么将执行该超类中定义的函数;如果子类的对象用于调用方法,那么将执行该子类中定义的函数。

通过对子类中定义的函数使用修饰符override可以重写函数。超类中定义的函数必须是抽象或虚拟才能被重写。

小问题:
说明下面的语句正确还是错误。
超类中定义的函数必须是抽象或虚拟才能被重写。
a.正确
b.错误
答案:a.正确


重写属性

类似于函数,属性也可被重写。通过在派生类中提供具有相同名称和返回类型的属性来实现属性重写。超类中定义的属性必须是抽象或虚拟才能被重写。

抽象属性

可以使用关键字abstract将类中的属性声明为抽象。抽象属性没有代码。超类中定义的属性的set和get访问器使用分号表示。它们没有自己的主体。在子类中,必须一并实现set和get访问器。如果抽象类只包括set访问器,那么可以在派生类中只实现set访问器。

思考以下代码:

	using System;
	abstract class Shape
	{
   
   
		protected int x;
		public abstract int X
		{
   
   
			get;
			set;
		}
	}
	class Sqyare:Shape
	{
   
   
		public override int X
		{
   
   
			get
			{
   
   
				return x;
			}
			set
			{
   
   
				x = value;  /* value is a variable present by default in the set accessor */
			}
		}
		public static

相关推荐

  1. c++ 重构 重载

    2024-01-13 18:58:05       45 阅读
  2. C++ 重载与

    2024-01-13 18:58:05       65 阅读
  3. C++linux下使用clog和定向实现日志

    2024-01-13 18:58:05       23 阅读
  4. C++面向对象:、重载、隐藏

    2024-01-13 18:58:05       29 阅读
  5. C++】多态 ⑤ ( 重载 | | 定义 )

    2024-01-13 18:58:05       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 18:58:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 18:58:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 18:58:05       82 阅读
  4. Python语言-面向对象

    2024-01-13 18:58:05       91 阅读

热门阅读

  1. awk获取filebeat注册表offset的值

    2024-01-13 18:58:05       55 阅读
  2. P1468 [USACO2.2] 派对灯 Party Lamps

    2024-01-13 18:58:05       57 阅读
  3. Django全文搜索

    2024-01-13 18:58:05       62 阅读
  4. uni-app中实现弹幕的滚动效果

    2024-01-13 18:58:05       58 阅读