C#接口的实现和继承实践
1.基本概念
接口是一种契约规范,类似于抽象基类。包括方法,属性,索引器和事件作为成员,这些成员只是作为定义,并不在接口中具体实现。
接口创建时注意以下事项:
- 继承接口的任何非抽象类都必须实现接口的所有成员
- 不能直接实例化接口
- 接口可以包含事件,索引器,属性和方法,不包括方法的实现
- 类和结构可从多个接口继承,中间用“,”隔开
- 接口自身可从多个接口继承
接口声明格式如下
修饰符 interface 接口名称:继承接口列表(非继承接口可省去该部分)
{
接口内容:属性,方法,索引器,事件
}
2.使用实例
如定义一个信息类接口,包含编码和名称属性及信息显示方法。
通过销售类信息和进货类信息继承该接口。
整个文档接口如下:

- 接口定义
namespace CSCOMExample
{
public interface Informatioin
{
string Code { get; set; } //编码属性
string Name { get; set; }//名称属性
void ShowInfo();//输出信息方法
} }
- 进货类
namespace CSCOMExample
{ /// <summary>
/// 进货信息继承接口
/// </summary>
public class JHInfo : Informatioin //继承接口
{
string code = "";
string name = "";
/// <summary>
/// 实现编码属性
/// </summary>
public string Code
{
get { return code; }
set { code = value; }
}
/// <summary>
/// 实现名称属性
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// 实现进货显示信息方法
/// </summary>
void Informatioin.ShowInfo()
{
Console.WriteLine("进货信息:\n" + Code + " " + Name);
}
}
}
- 销售类
namespace CSCOMExample
{
/// <summary>
/// 销售信息继承接口
/// </summary>
public class XSInfo : Informatioin //继承接口
{
string code = "";
string name = "";
/// <summary>
/// 实现编码属性
/// </summary>
public string Code
{
get { return code; }
set{code =value; }
}
/// <summary>
/// 实现名称属性
/// </summary>
public string Name
{
get{return name; }
set { name=value; }
}
/// <summary>
///销售信息显示方法
/// </summary>
void Informatioin.ShowInfo()
{
Console.WriteLine("销售信息:\n" + Code + " " + Name);
}
}
}
以上,分别在JHInfo类和XSInfo类中对接口的属性和方法进行了实现。如此,一个信息接口Information就完成了。
再做一个测试程序,检测接口:
namespace ComText
{
class Program
{
static void Main(string[] args)
{
Informatioin[] Infos = { new JHInfo(), new XSInfo() };//定义接口数组
Infos[].Code = "JH0001";
Infos[].Name = "笔记本电脑";
Infos[].ShowInfo(); Infos[].Code = "XS0001";
Infos[].Name = "荣耀手机";
Infos[].ShowInfo();
Console.ReadLine();
}
}
}
输出结果如下:

C#接口的实现和继承实践的更多相关文章
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
实现线程并发有两种方式:1)继承Thread类:2)实现Runnable接口. 线程基础 1)程序.进程.线程:并行.并发. 2)线程生命周期:创建状态(new一个线程对象).就绪状态(调用该对象的s ...
- [Java] 类和接口的初始化步骤 - 继承方面
类和接口在初始化化时,处理继承层级的方法不一样. 类继承的初始化:通过引用 static 字段,触发某个类的初始化,则声明该字段的类,以及该类的父类被初始化. 接口继承的初始化:通过引用 static ...
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问: 抽象类是否可继承实体类 (concrete class) 答: 抽象类是 ...
- 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口.抽象类可以实现(implements)接口,抽象类 ...
- 接口和抽象类是否继承了Object
我们先看一下Java的帮助文档对于Object的描述: Class Object is the root of the class hierarchy. Every class has Object ...
- c# 第37节 接口的实现与继承
本节内容: 1:接口继承注意 2:开发封闭原则: 3:实例解释接口的作用 1:接口继承注意 接口的继承: :类继承具有单根性,接口可多重继承: :接口继承多个接口的时候,派生接口名与父接口用冒号隔开, ...
- Spring Security 接口认证鉴权入门实践指南
目录 前言 SpringBoot 示例 SpringBoot pom.xml SpringBoot application.yml SpringBoot IndexController SpringB ...
- 接口是干爹, 继承是亲爹 ---JAVA
接口(interface)是干爹, 因为你可以有很多很多的干爹爹... 继承(extends)是亲爹, 因为你只能有一个父类, 只有一个亲生的父亲. 单继承,多接口?./>./..
- EffectiveC#00--选择定义和实现接口,而不是继承
1.继承就是说它是某物(is a的关系),针对相关类,而接口是说它有某个功能(behaves like.)可以是不相关的 基类是描述对象是什么,接口描述对象有某种行为. 2.不能在接口里提供任何成员的 ...
随机推荐
- CodeReview的一些原则
架构/设计/常规角度: 单一职责原则 一个类只能干一个事情,一个方法最好也只干一件事情.一个类既干UI的事情,又干逻辑的事情,这个在低质量的代码里是很常见. 行为是否统一 缓存是否统一 错误处理是否统 ...
- linux ssh连接超时断连设置
以下均针对redhat6.5系统进行说明. 一.设置ssh超时断连 使用root用户,编辑/etc/profile文件,在 HOSTNAME='/bin/hostname' HISTIZE=30 后增 ...
- Java并发(基础知识)—— 创建、运行以及停止一个线程
在计算机世界,当人们谈到并发时,它的意思是一系列的任务在计算机中同时执行.如果计算机有多个处理器或者多核处理器,那么这个同时性是真实发生的:如果计算机只有一个核心处理器那么就只是表面现象. 现代所有的 ...
- C#WinFrom导出Excel
采用的是以DataGridView的形式导出,使用NPOI.dll 1.由于使用的是DataGridView,所以类需要创建在From的Project下,DLL导入NPOI 2.代码如下 using ...
- 深入理解JAVA虚拟机 垃圾收集器和内存分配策略
引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器都为0的对象就是不可能再被使用的 ...
- Berlekamp-Massey algorithm
https://www.cnblogs.com/zzqsblog/p/6877339.html https://blog.csdn.net/qq_39972971/article/details/80 ...
- Android 在 4G 下访问 IPV6 慢的解决方案
Android 在 4G 下访问 IPV6 慢的解决方案 Android4G ipv6 起因 今天,用户反馈 Android 端加载数据较慢,经 Android 开发人员排查后,发现在公司 wifi ...
- 输出到Excel
HSSFWorkbook oBook = new HSSFWorkbook(); NPOI.SS.UserModel.ISheet oSheet = oBook.CreateSheet(); #reg ...
- linux-ntp-10
Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com windows类: time.pool.aliyun.com s1a.time.edu.cn 北京邮电大学 s ...
- 与HTTP协作的Web服务器——代理、网关、隧道
1.虚拟主机 (1)HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点: (2)在互联网上,域名通过DNS服务映射到IP地址(域名解析)之后访问目标网站,即当请求发送到服务器时,已经是以IP ...