zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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()   //密封并重写基类中的虚方法Methodbase.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 Programstatic void Main(string[] args)
		{
			myClass2 myclass2 = new myClass2();   //实例化密封类对象
			myClass2.ID = "A001";                 //为密封类中的编号属性赋值
			myClass2.Name = "Alei";               //为密封类中的名称属性赋值
			myClass2.ShowInfo();                //调用密封类中的密封方法
		}}