参考代码1:

using System;

namespace InterfaceDemo
{
/// <summary>
/// 定义一个爬树接口
/// </summary>
interface IClimbTree
{
void ClimbTree();
} /// <summary>
/// 定义一个抓老鼠接口
/// </summary>
interface ICatchMouse
{
void CatchMouse();
}
/// <summary>
/// 定义站立行走接口
/// </summary>
interface IStandWalk
{
void StandWalk();
} /// <summary>
/// 定义一个宠物类
/// </summary>
public class Pet
{
protected string Gene = "Pet";
public void Run()
{
Console.WriteLine("我会跑");
}
}
/// <summary>
/// 猫类,继承于宠物类,又实现了爬树和抓老鼠接口
/// </summary>
public class Cat : Pet, IClimbTree, ICatchMouse
{
public void ClimbTree()
{
Console.WriteLine("我会爬树");
}
public void CatchMouse()
{
Console.WriteLine("我会抓老鼠");
}
} /// <summary>
/// 站立猫类,继承于猫类,又实现了站立行走接口
/// </summary>
public class StandCat :Cat, IStandWalk
{
public void StandWalk()
{
Console.WriteLine("我会站立行走");
}
public void WhoAreYou()
{
Console.WriteLine(Gene + " Class Animal");
}
} class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
cat.Run();
cat.ClimbTree();
cat.CatchMouse();
StandCat standCat = new StandCat();
standCat.StandWalk();
standCat.WhoAreYou();
Console.ReadLine();
}
}
}

参考代码2:

using System;

namespace LearnFromComradeLeiFeng
{
public class School : IPartyCenter, IStateCouncil
{
public void NormalTeach()
{
Console.WriteLine("学校正常教学工作...");
}
void IPartyCenter.LearnFromComradeLeiFeng()
{
Console.WriteLine("学校具体落实向雷锋同志学习的号召....");
}
public void EpidemicPreventionWork()
{
Console.WriteLine("学校具体落实全校抗疫的指导方针....");
}
}
public class Army : IPartyCenter, IStateCouncil
{
public void ReadyToFight()
{
Console.WriteLine("时刻准备打仗...");
}
void IPartyCenter.LearnFromComradeLeiFeng()
{
Console.WriteLine("军队具体落实向雷锋同志学习的号召....");
}
public void EpidemicPreventionWork()
{
Console.WriteLine("军队具体落实全军抗疫的指导方针....");
}
} interface IPartyCenter
{
public void LearnFromComradeLeiFeng();
} interface IStateCouncil
{
void EpidemicPreventionWork();
}
class Program
{
static void Main(string[] args)
{
School sc = new School();
Army am = new Army();
sc.NormalTeach();
sc.EpidemicPreventionWork();
am.ReadyToFight();
am.EpidemicPreventionWork();
IPartyCenter pc = null;
pc=(IPartyCenter) sc;
((IPartyCenter)pc).LearnFromComradeLeiFeng();
pc = (IPartyCenter)am;
((IPartyCenter)pc).LearnFromComradeLeiFeng();
}
}
}

[C#]接口Interface快速Demo的更多相关文章

  1. MyBatis的接口式编程Demo

    很久没细看过MyBatis了,时间一长就容易忘记. 下面是一个接口式编程的例子. 这里的例子一共分为4步: 1 首先要有一个namespace为接口的全类名的映射文件,该例中是 IMyUser.xml ...

  2. 0507 构造代码块和static案例,接口interface

    0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ...

  3. 【Golang】Go 通过结构(struct) 实现接口(interface)

    一.通过结构(struct) 实现 接口(interface) 1.在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为接收器,来调用方法,有点好奇这样做有什么意义. 解释:在 Go 语 ...

  4. java中的接口interface

    关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 类似与class,interface ...

  5. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  6. 14 接口-interface的定义与实现

    接口的基本语法一: 1.使用interface 定义 2.接口当中的方法都是抽象方法 3.接口当中的方法都是public权限 接口的定义: interface USB { public void re ...

  7. C#编程利器之三:接口(Interface)【转】

    C#编程利器之三:接口(Interface) C#接口是一个让很多初学者容易迷糊的东西,用起来好象很简单,定义接口,然后在里面定义方法,通过继承与他的子类来完成具体的实现.但没有真正认识接口的作用的时 ...

  8. 为什么不能把委托(delegate)放在一个接口(interface)当中?

    stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...

  9. java之接口interface

    接口 1.多个无关的类可以实现同一个接口 2.一个类可以实现多个无关的接口 3.与继承关系类似,接口与实现类之间存在多态性 4.定义java类的语法格式 < modifier> class ...

  10. 【Java 基础篇】【第六课】接口interface

    Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体. 首先加入我们定义了这个杯子接口: interface Cup { void addWater(int w); ...

随机推荐

  1. 一个新App上线应该注意什么?

    一个新App上线应该关注哪些地方: 功能使用上无大问题遗留 用户使用体验尚佳 (前两条属于普通app更新也需要关注的点) 用户需要有反馈的入口,比如app内的反馈.用户可以直接联系到对应负责人进行反馈 ...

  2. DELL服务器基于centos7安装OMSA

    DELL服务器基于centos7安装OMSA 参考链接: https://www.cnblogs.com/sky-cheng/p/14951071.html https://www.dell.com/ ...

  3. Vue3学习笔记

    为什么需要Composition API ? 主要原因:当一个组件的变得逻辑复杂的时候,痛点:多种逻辑代码被分散到组件的各个部分,比如代码的相关逻辑可能会在 data: {...},computed: ...

  4. 运行yarn报错:error C:\liuyan\tools\echarts-5.4.0\node_modules\cwebp-bin: Command failed.

    完成warning和报错信息如下. 通过报错信息提示,锁定cwebp-bin,在waring中发现有提示说要更新至7或更高版本. 解决方案:在package.json中,将cwebp-bin设置版本为 ...

  5. 织梦dedecms网站迁移搬家图文教程

    织梦dedecms网站迁移搬家图文教程 2014-07-31  dedecms教程  文章介绍 织梦作为国内使用最多的程序之一,难免很多新手在接触dede时不知道怎么转移也就是搬家dede的程序,而且 ...

  6. Background Suppression Network for Weakly-supervised Temporal Action Localization概述

    0. 前言 相关资料: arxiv github 论文解读1,论文解读2 论文基本信息: 领域:弱监督时序行为定位 发表时间:AAAI 2020(2019.11.22) 1.针对的问题 弱监督视频动作 ...

  7. js 表格分页,ajax请求后台数据前台分页

    $(function(){ var url="后台给的地址"; var shuju=document.getElementById("shuju"); cons ...

  8. docker 中搭建 mysql pxc 集群

      一.docker中创建pxc 容器 1.拉取PXC 镜像 pull docker pull percona/percona-xtradb-cluster:5.7.21 2.更改镜像名称为pxc t ...

  9. 解决通过Eclipse启动Tomcat-Run On Server出现The selection cannot be run on any server

    有时候通过Eclipse启动Tomcat-Run On Server会出现The selection cannot be run on any server的情况如下图: 这是因为没有在eclipse ...

  10. 配置SASS过程

    1.首先在电脑上安装Node.js 2.其次在命令行配置npm,命令:npm init.运行后会创建一个package.json文件 3.然后输入命令配置npm中可以使用SASS的包,命令:npm i ...