参考代码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. beanshell脚本构造生成随机大小的文件

    文件下载地址:链接: https://pan.baidu.com/s/1wum8hfBeLMipdtQlqysp8A?pwd=8e7r 提取码: 8e7r #!/bin/bash -e # sh fi ...

  2. es启动和停止命令

    1.启动命令 使用elasticsearch用户来启动,进入bin目录(例:home/db_app/elasticsearch/elasticsearch-6.5.4/elasticsearch-cl ...

  3. kotlin inline的缺点

    inline关键字修饰的方法,可以在运行时将代码复制到使用处 用来控制打印好用 但有两个缺点: 一.修饰的方法不能太大,行数也不能太多,不然会造成很多重复代码 2.控制打印时,方法的行数最好与使用的行 ...

  4. git入门123

    一.新手上路 最重要的4招: 1. 初始化本地仓库 git init 或者 git clone 远程仓库地址 2.添加改动文件 git add 改动的文件名或者目录 偷懒的话可以直接 git add ...

  5. allure安装成功后,执行未生成报告解决

    在搜索了很多方法尝试后,执行依然没有生成测试报告,在尝试在pycharm里面修改配置解决了: file>setting>tools>Python integrated tools&g ...

  6. Java基础之变量与常量

    变量 定义:可以变化的量. Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序种最基本的存储单元,其要素包括变量名,变量类型和作用域. //数据类型 变量名 = 值:可以使用逗号 ...

  7. tomcat各个版本下载

    官网地址:https://archive.apache.org/dist/tomcat/

  8. CCF 202012-1 期末预测之安全指数

    #include <iostream> //#include <bits/stdc++.h> #include <string> using namespace s ...

  9. 删除Windows10资源管理器多余的入口

    ///// 删除3D对象 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\Nam ...

  10. Mysql语句练习

    某宾馆其关系模式如下:Room(房间编号,房间类型,价格)Customer(顾客编号,顾客姓名,年龄,电话)RC(房间号,顾客编号,入住日期,入住天数) 1 create database Hotel ...