C#学习记录——密封类与密封方法
2023-09-11 14:14:49 时间
『我们在努力扩大自己,以靠近,以触及我们自身以外的世界。』—— 豪尔赫·路易斯·博尔赫斯
密封类与密封方法
1、密封类概述及声明
密封类可以用来限制扩展性,如果密封了某个类,则其他类不能从该类继承;如果密封了某个成员,则派生类不能重写该成员的实现。
C#中声明密封类时需要使用sealed关键字,具体语法格式如下。
访问修饰符sealed claled 类名:基类或接口
{
//类成员
}
public sealed class myClass //声明密封类
{
public int = 0;
public void method()
{
Console.WriteLine("密封类");
}
}
2、密封方法概述及声明
public class myClass1
{
public virtual void Method()
{
Console.WriteLine("基类中的虚方法");
}
}
public sealed class myClass2:myClass1
{
public sealed override void Method() //密封并重写基类中的虚方法Method
{
base.Method();
Console.WriteLine("基类中重写后的方法");
}
}
3、密封类与密封方法的使用
密封类除了不能被继承外,与非密封类的用法大致相同,而密封方法则必须通过重写基类中的虚方法来实现。
实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Alei2022
{
public class myClass1
{
///<summary>
///虚方法,用来显示信息
///</summary>
public virtual void ShowInfo()
{
}
}
public sealed class myClass2:myClass1 //密封类,继承自myClass1
{
private string id = "" ; //string类型变量,用来记录编号;
private string name = "" ; //string类型变量,用来记录名称;
///<summary>
///编号属性
///</summary>
public string ID
{
get
{
return id ;
}
set
{
id = value;
}
}
///<summary>
///名称属性
///</summary>
public string Name
{
get
{
return name ;
}
set
{
name = value;
}
}
///<summary>
///密封并重写基类中的ShowInfo方法
///</summary>
public sealed override void ShowInfo() //密封并重写基类中的虚方法Method
{
Console.WriteLine(ID+" " + Name);
}
}
class Program
{
static void Main(string[] args)
{
myClass2 myclass2 = new myClass2(); //实例化密封类对象
myClass2.ID = "A001"; //为密封类中的编号属性赋值
myClass2.Name = "Alei"; //为密封类中的名称属性赋值
myClass2.ShowInfo(); //调用密封类中的密封方法
}
}
}
相关文章
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- CefSharp F12打开DevTools查看console js和c#方法互相调用
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- 【卷土重来之C#学习笔记】(二)c#编程概述
- C#,入门教程(26)——数据的基本概念与使用方法
- C# GDI+ 画心形 跳动动画
- C# DateTime 日期加1天 减一天 加一月 减一月 等方法
- C#和Java,究竟选哪个方向?我只说事实,你自己分析……
- C#获取时间戳的封装方法函数+使用获取当前时间时间戳
- C#中的结构体要使用new来实例化吗?
- 【C#进阶3-7】C# Socket通讯
- c# 单实例运行
- C# 匿名方法和Lambda表达式
- C# 中的委托和事件 --转载
- C#访问远程主机资源的方法,多种方式
- C#Winform频繁刷新导致界面闪烁解决方法
- C# Graphics类详解