当前位置:网站首页>C# 一周入门高级编程之《C#-接口》Day Two
C# 一周入门高级编程之《C#-接口》Day Two
2022-08-03 07:59:00 【太阳风暴】
一、接口是什么
接口定义和 Java 里面的接口定义基本一致,也是一种声明的对外部的一个接口说明,本质上就是一个函数声明,不能实现,只有继承后重写该接口方法的类才能有作用。这样接口有什么好处呐?接口规定了一个蓝图,但并负责具体实现,具体实现就需要通过继承接口然后方式来实现这个蓝图内部的步骤。当然接口完全是可以用抽象类方式来实现,这里其实也是C#接口的一个特殊功能罢了,不必过于深入纠结。
在接口里面,我们可以方法和事件,属性不可以写在内部,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的蓝图设计。
接口的好处就是可以扩展性好,我们可以通过使用不同的实例对象,来扩展当前功能,而不需要去改代码,也就是更好的应对改变,接口的其实就是设计模式的一种演绎。
二、接口定义
接口定义需要使用到 interface 关键字,其实和类的实现没有构造函数,同时在接口定义时,默认是public访问属性,当然我们也可以明确指定 public
public interface Reader
{
int GetPath();
void SetPath(int value);
void GetContent();
}
- 接口内部成员不能写访问属性
- 接口内部只能是函数声明,不能有实现
三、接口继承
接口继承很简单,也就是说 接口之间也是能继承的,继承后的接口具有之前所有接口的成员,没有继承得访问权限,接口继承可以是多继承,可以是单继承,接口多继承主要是用来增加功能,用组合方式而不是继承方式来实现功能
public interface Reader
{
void GetContent();
}
public interface Encoder
{
void Encode(string content);
}
public interface ReaderEncoder : Reader, Encoder
{
string GetReaderEncodeContent();
}
Reader 是读取数据的,Encoder 是数据编码的,ReaderEncoder 就是加密数据读取的功能
四、接口使用
定义好接口之后,我们就去继承接口然后去实现对应的函数,那我们就可以去调用接口的方法,给予实现的类。
//
static void Main()
{
Reader reader = new TextReader();
reader.GetContent();
}
public interface Reader
{
void GetContent();
}
//这里可以从文件读取
public class TextReader : Reader
{
void Reader.GetContent()
{
//操作。。。
Console.Write("从文件读取");
}
}
//从网络中读取
public class NetWorkReader : Reader
{
void Reader.GetContent()
{
//操作。。。
Console.Write("从网络中读取");
}
}
边栏推荐
猜你喜欢
随机推荐
VR全景市场拓展技巧之“拓客宝典”
vs 2022无法安装 vc_runtimeMinmum_x86错误
Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例
Taro框架-微信小程序-调用微信支付
数仓4.0(二)------ 业务数据采集平台
tolower函数
Roson的Qt之旅#106 QML在图片上方放置按钮并实现点击按钮切换图片
greenplum role /user 管理
DeFi明斯基时刻:压力测试与启示
JS函数获取本月的第一天和最后一天
Karatsuba大数乘法的Verilog实现
ArcEngine (5) use the ICommand interface to achieve zoom in and zoom out
集群
36氪详情页AES
差分(前缀和的逆运算)
酷雷曼上新6大功能,全景营销持续加码
Roson的Qt之旅#103 QML之标签导航控件TabBar
swiper分类菜单双层效果demo(整理)
LeetCode 264:丑数
学习笔记:机器学习之逻辑回归