上一篇中我们说到继承,其实他们之间是差不多的。

接口是方法的抽象,如果不同的类有同样的方法,那么就应该考虑使用接口。

C#中接口可以多继承,接口之间可以相互继承和多继承。一个类可以同时继承一个类和多个接口,但是接口不能继承类。

接口之间继承表示方法和类继承是相同的,继承的规则也是相同的,即子接口获得父接口的内容,如果有多个接口,接口之间用","隔开。

老规矩,上菜:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; /**
* 假如你是一名在职学生,你就具有双重身份。一个身份是学生,必须完成学习任务,一个身份是职员,必须完成工作任务。进一步说,你是计算机类学生,除了学习基础课程,
* 还必须学习C#程序设计。现在建立一个模型,应该如何建立?
* 1.我们首先来定义一个学生接口,规定学生必须学习,再建立一个职员接口,规定职员必须完成工作任务。
* 2.计算机专业的学生,除了完成一般学习任务,还是学习C#。可以再定义一个接口,继承学生接口,规定自己的学习任务。
*/
namespace InterfaceApplication
{
//定义学生接口
public interface IStudent
{
void study_base();
}
//定义计算机类学生接口
public interface IIStudent : IStudent
{
void study_computer();
}
//定义职员接口
public interface IEmployee
{
void work();
}
public class Infostudent : IEmployee, IIStudent
{
//实现学生接口
public void study_base()
{
Console.WriteLine("学生:数学、语文和英语必须学好");
}
//实现计算机类学生接口
public void study_computer()
{
Console.WriteLine("计算机类学生:数学、语文和英语必须学好,还要学C#");
}
//实现职员接口
public void work()
{
Console.WriteLine("职员:工作必须完成");
}
} //运行程序
class Program
{
static void Main(string[] args)
{
Infostudent infostudent = new Infostudent();
infostudent.study_base();
infostudent.study_computer();
infostudent.work();
Console.ReadKey();
}
}
}

我们运行一波看看效果!

很显然,学生和计算机类的学生都继承了学生接口。

是不是很简单,灵活运用接口能给工作中带来很多便利哦!

最新文章

  1. 一篇介绍java与js操作cookie的
  2. android shader 用法
  3. 恶意IP远程登录Linux服务器脚本
  4. windows编程原理
  5. (spring-第10回【IoC基础篇】)InstantiationStrategy--实例化Bean的第三大利器
  6. google大赛 入围赛250分真题
  7. 省市联级菜单--js+html
  8. android 签名被篡改(Keystore was tampered with, or password was incorrect)
  9. iOS开发之视图控制器(UIViewController)
  10. thinkphp 3.1.3 redis 只能读取 无法写入的问题
  11. Docker进阶之五:容器管理
  12. Go语言协程
  13. C# 隐藏最大化、最小化和关闭三个按钮
  14. SQL攻击-预编译--缓存
  15. docker被屏蔽后下载方法
  16. 涨姿势:Java 异常?尝试自定义异常
  17. Android Studio 运行shell
  18. tomcat/eclipse提速[z]
  19. 【GDOI2018】所有题目和解题报告
  20. [.NET开发] C#使用doggleReport生成pdf报表的方法

热门文章

  1. JS获取键盘事件
  2. HTML/CSS实现的一个列表页
  3. [LeetCode] Possible Bipartition 可能的二分图
  4. 用 PHP文件引入css样式
  5. Bugly 多渠道热更新解决方案
  6. Python 创建递归文件夹
  7. 「造个轮子」——cicada 源码分析
  8. ASP.NET Core Mvc中空返回值的处理方式
  9. C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面
  10. JS 中 原生方法 (一) --- 字符串