首页 / C# / c#抽象类、静态类与单例模式
c#抽象类、静态类与单例模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#抽象类、静态类与单例模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3354字,纯文字阅读大概需要5分钟。
内容图文
![c#抽象类、静态类与单例模式](/upload/InfoBanner/zyjiaocheng/642/52b494a4873a4b7687910dd7af7aa0ae.jpg)
抽象类
一、抽象方法
- 抽象方法的声明:[访问修饰符] abstruct 返回值类型 方法名(参数列表);
- 抽象方法必须放在抽象类里,class前面要加修饰符abstract
- 抽象方法没有方法体,格式就为:[访问修饰符] abstruct 返回值类型 方法名(参数列表);
- 抽象?法的访问修饰符不能是private,因为private不允许继承,抽象方法必须在?类中全部实现,除??类也是?个抽象类,那么可以先不实现该抽象?法
- 抽象?法和虚?法最?的区别:抽象?法必须其派?类中得以实现,?虚?法不是?定要在其派?类去重写
- ?论是虚?法还是抽象?法,?类进?了重写(实现),那么?类的?类依旧可以继续重写
二、抽象类
- 抽象类即可以放抽象?法,也可以放普通?法
- 从抽象类派生的非抽象类必须实现抽象类当中的所有抽象方法
- 抽象类不能被实例化但可以有构造方法,构造方法不能为抽象方法
- 抽象类不能?sealed关键词修饰
三、sealed关键词
1.密封类
- sealed关键词修饰的类称之为密封类
- 语法:sealed class 类名
- 密封类不能被别的类继承
2.密封?法
- sealed关键词修饰的重写的?法,称之为密封?法
- 语法:sealed override 返回值类型 ?法名(参数列表)
- 密封?法?法再次被其?类重写
静态类
- 关键词:static
一、静态成员
- 静态成员变量是和类相关联的,可以作为类中“共”有的变量(是一个共性的表现)
- 静态成员不依赖特定对象的存在,访问的时候通过类来操作的
- 静态成员在第?次访问这个类的时候(第?次?到这个类的时候)开辟的内存,比如?这个类名去实例化?个对象时,?这个类型去访问?个静态字段时
- 静态成员在程序结束的时候才会释放内存
- 静态成员随着类的加载而加载,无论对一个类创建多少个实例,静态成员都只有一个副本。普通的实例成员,每有?个对象,就有?个该成员,?静态成员,跟对象没有关系,所以?论有多少个对象,静态成员都只有?个。例: 实例成员【name】,每有?个?,就会有对应的?个名字,?静态成员【Population】,跟对象没有关系,?论有多少个实例对象,??数量只有?个
- 静态方法可以被重载但不能被重写,因为他们是属于类,不属于任何实例的
- 静态方法只能访问静态成员,包括静态成员变量和静态方法,?静态?法中是可以访问静态成员的;实例方法可以访问实例成员变量与实例方法,也可以访问静态成员
二、静态类
- 静态的成员可以放在静态类中,也可以放在?静态类中
- 静态类中只能存在静态成员,不能存在?静态的成员
- 静态类是不能进?实例化的
三、静态构造函数
- 只有一种写法:static 类名()
- 静态构造函数是固定格式,不能有修饰符,不能带任何参数
- 一个类只能有一个静态构造函数,即静态构造函数不可以重载
- 静态构造函数在程序运?期间只会执??次,就是在第?次访问该类的时候执行,如:?这个类去new?个对象、?这个类去访问某个静态成员、?这个类去调?某个静态?法
- 如果有继承关系,静态构造函数的执?顺序是:先执??类的静态构造,再执??类的静态构造
- 静态构造函数?般?于对静态成员进?初始化
单例模式
- 设计模式:设计模式是指前任反复设计实践,总结出来的代码架构设计思路或模式,常用的设计模式有单例模式,工厂模式,代理模式等
- 对于系统中的某些类来说,只有一个实例很重要。例如:一个游戏数据内容,整个游戏只有这么一份,在游戏进行到不同部分时,需要记录或访问该游戏数据。针对这种情况如果某个类只能有一个实例那么则满足我们的需求,我们将满足某个类只有一个实例的代码设计方式称为单例模式
- 单例模式的三要点:某个类只能有一个实例、必须自行创建这个实例、必须自行向外界提供这个实例
- 单例模式实现步骤:默认构造使用private修饰、内建该类的静态实例、静态构造方法中给该静态实例做初始化、对外提供获取该静态实例的方法
public class SingleTon
{
private SingleTon() { } //构造方法必须私有化
private static SingleTon instance; //定义静态实例
public static SingleTon GetInstance()
{
//对外提供获取该实例的接口
if (instance == null)
{
instance = new SingleTon();
}
return instance;
}
}
- 单例模式的使用
SingleTon singleton = SingleTon.GetInstance();
Console.WriteLine(singleton.name);
Blazerrr
发布了16 篇原创文章 · 获赞 3 · 访问量 549
私信
关注
内容总结
以上是互联网集市为您收集整理的c#抽象类、静态类与单例模式全部内容,希望文章能够帮你解决c#抽象类、静态类与单例模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。