[C#]接口Interface快速Demo
参考代码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的更多相关文章
- MyBatis的接口式编程Demo
很久没细看过MyBatis了,时间一长就容易忘记. 下面是一个接口式编程的例子. 这里的例子一共分为4步: 1 首先要有一个namespace为接口的全类名的映射文件,该例中是 IMyUser.xml ...
- 0507 构造代码块和static案例,接口interface
0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ...
- 【Golang】Go 通过结构(struct) 实现接口(interface)
一.通过结构(struct) 实现 接口(interface) 1.在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为接收器,来调用方法,有点好奇这样做有什么意义. 解释:在 Go 语 ...
- java中的接口interface
关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 类似与class,interface ...
- php中的抽象类(abstract class)和接口(interface)
一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...
- 14 接口-interface的定义与实现
接口的基本语法一: 1.使用interface 定义 2.接口当中的方法都是抽象方法 3.接口当中的方法都是public权限 接口的定义: interface USB { public void re ...
- C#编程利器之三:接口(Interface)【转】
C#编程利器之三:接口(Interface) C#接口是一个让很多初学者容易迷糊的东西,用起来好象很简单,定义接口,然后在里面定义方法,通过继承与他的子类来完成具体的实现.但没有真正认识接口的作用的时 ...
- 为什么不能把委托(delegate)放在一个接口(interface)当中?
stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...
- java之接口interface
接口 1.多个无关的类可以实现同一个接口 2.一个类可以实现多个无关的接口 3.与继承关系类似,接口与实现类之间存在多态性 4.定义java类的语法格式 < modifier> class ...
- 【Java 基础篇】【第六课】接口interface
Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体. 首先加入我们定义了这个杯子接口: interface Cup { void addWater(int w); ...
随机推荐
- ABAP链接FTP把txt文件数据获取到内表
啥都不说,直接上代码 ******* 如果无法链接FTP,可能需要往表SAPFTP_SERVERS加入IP地址和端口(21)即可 DATA:p_host TYPE char64 VALUE 'IP', ...
- 1.java 开始
WelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 编写代码 编译javac java文件,生成一个class文件 运行class文件,java class 可能遇到的情况 每个 ...
- SQL Server【提高】分区表
分区表 分区视图 分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看,还是一个大表. 什么时候需要分区表 数据库中某个表中的数据很多. 数据是分段的 分区的方式 水平分区 水平表分区就是将一个 ...
- MYSQL5.7索引异常引发的锁超时处理记录
原始sql: update a set a.x=x where a.xid in (select b.xid from b inner join c on b.xxx = c.xxx) and a.x ...
- 算法图解 - 第1章 二分查找 与大O
例子:猜一个1到100之间的数,最多猜几次? # 最糟糕的猜法:一个一个的猜 - 最多查找次数: n - 运行时间: O(n) # 二分查找:在有序的一组数中猜一个数,对半猜.找到返回其位置(索引) ...
- php递归算法多级分类
/** * 递归实现无限极分类 * @param $array 分类数据 * @param $pid 父ID * @param $level 分类级别 * @return $list 分好类的数组 直 ...
- plsql和instantclient版本都对,依然不能初始化oci.dll解决办法
这里写到 "初始化错误,不能初始化 oci.dll, 请确认你安装的是64位的Oracle客户端 " ,这个描述还是非常的到位啊,我一检查,果然下载的客户端是32位的,在确保自己的 ...
- Django和DRF的区别
Django和DRF的区别 一.Django REST Framwork 和 Django 1.两者的概念: Django REST Framwork: 将数据库的东西通过ORM的映射取出来,通过vi ...
- c中遍历lua的表
//遍历lua表,index为表在栈中的位置 void traverse_table(lua_State* L, int index) { lua_pushnil(L); stack_dump(L); ...
- beforeRouteLeave vue监听返回的使用方法
beforeRouteLeave(to, from, next) { console.log(this, to, from, next, "thissss"); if (to.fu ...