C# 基础之密封类
C#密封类
一、密封类
1. 密封类的定义
如果我们不希望自己编写的类被继承;如果有的类已经没有再被继承的必要,这时,我们可以使用sealed修饰符在类中进行声明,以达到该类不能派生其它类的目的,该类就被称为密封类。
2. 密封类与抽象类
密封类不能同时又是抽象类,因为密封类不能用作基类、也不能被继承,而抽象类总是希望被继承的。
3. 什么情况下使用密封类
需要阻止其它程序员无意中继承该类的时候;在程序运行时需要起到优化效果的时候,可以使用密封类。
4. 示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Program
{
sealed class A // 密封类。不能从该类再派生出其它类
{
public int x;
public int y;
}
static void Main(string[] args)
{
// C#密封类-www.baike369.com
A a = new A();
a.x = 10;
a.y = 20;
Console.WriteLine("x = {0}; y = {1}", a.x, a.y);
Console.ReadLine();
}
}
}
运行结果:
x = 10; y = 20二、密封方法
1. 密封方法
对类中的方法可以使用sealed修饰符,我们称该方法为密封方法。
不是类的每个成员方法都可以作为密封方法,密封方法必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed修饰符总是和override修饰符同时使用,sealed修饰符位于override修饰符前面。
2. 示例
class A
{
public virtual void F()
{
Console.WriteLine("A.F");
}
public virtual void G()
{
Console.WriteLine("A.G");
}
}
class B : A
{
sealed override public void F()
{
Console.WriteLine("B.F");
}
override public void G()
{
Console.WriteLine("B.G");
}
}
class C : B
{
override public void G()
{
Console.WriteLine("C.G");
}
}
类B对基类A中的两个虚方法都进行了重载,其中F方法使用了sealed修饰符,成为一个密封方法。G方法不是密封方法,所以在B的派生类C中,可以重载方法G,但是不能重载方法F。
(摘抄至melao2006博客)
最新文章
- MySQL7:视图
- ListView遍历每个Item出现NullPointerException的异常(转)
- iOS开发UI篇—从代码的逐步优化看MVC
- ASP.NET Excel 导入 Oracle 方法2
- PostgreSQL的 initdb 源代码分析之二十三
- HDU4283:You Are the One(区间DP)
- 数据库和SQL面试题基础知识(持续更新)
- CentOS7上RabbitMQ安装
- bootstrap table 的简单Demo
- HP Gen8,9 型号系列服务器更换主板
- 从强制解包看 Swift 的设计
- (11/24) css进阶:Less文件的打包和分离
- spark UDF函数
- 【转】从源码浅析MVC的MvcRouteHandler、MvcHandler和MvcHttpHandler
- hdu 5112 (2014北京现场赛 A题)
- python之函数用法iter()
- Codeforces Round #417 (Div. 2) B. Sagheer, the Hausmeister
- 阿里中间件RocketMQ
- pytorch在CPU和GPU上加载模型
- Angular学习笔记—HttpClient (转载)
热门文章
- Could not find com.android.tools.lint:lint-gradle:26.1.2.
- ICE学习笔记 -- RFC 5245
- linux3 源代码安装
- 调用html进行android布局
- 自建 AppRTC
- 关于Froala Editor的简单使用
- 谈谈java中成员变量与成员方法继承的问题
- [转载] Android raw与assets区别
- vmware tools for linux 安装
- Flutter实战视频-移动电商-35.列表页_上拉加载更多制作