C#接口实现多态
我比较喜欢对感兴趣的理论进行反复的理解甚至理解背诵下来,接下来再复习一下什么叫多态(哈哈哈)
多态:在同一粒度视图下对相同类型的事物不做区别的统一处理
接下来看一下接口和引擎类是如何实现多态的:
一、
1、创建了一个接口类:IWeapon
public interface IWeapon
{
void Fire();
}
2、声明几个类去实现这个接口(展示描述的词语是我老师的佳作,我可是软妹子(哈哈哈))
public class Gun : IWeapon
{
public void Fire()
{
Console.WriteLine("pa peng pa peng");
}
} public class Sword : IWeapon
{
public void Fire()
{
Console.WriteLine("七剑下天山");
} } public class Tank : IWeapon
{
public void Fire()
{
Console.WriteLine("压死你");
}
} public class Xiaomugun : IWeapon
{
public void Fire()
{
Console.WriteLine("扎死你");
}
}
3、创建一个引擎类:Engine(以接口为参数)
public static void Play(IWeapon w)
{
w.Fire();
}
4、在程序入口处调用引擎类,实现多态
InterfaceDemo.Engine.Play(new InterfaceDemo.Gun());
InterfaceDemo.Engine.Play(new InterfaceDemo.Sword());
InterfaceDemo.Engine.Play(new InterfaceDemo.Tank());
InterfaceDemo.Engine.Play(new InterfaceDemo.Xiaomugun());
上面调用的结果是:
pa peng pa peng
七剑下天山
压死你
扎死你
顺便复习一下抽象类和接口的一点小区别:
一个类可以去实现多个接口,表示这个类的对象可以做什么
一个类只能继承一个抽象类,相当于派生类是一个抽象类的意思,从属关系比较紧凑
C#接口实现多态的更多相关文章
- C#中的接口实现多态
我们都知道虚方法实现多态,抽象方法实现多态等,我们今天来看看如何使用接口实现多态 1.首先我们先要来了解了解什么是接口,它存在的意识 01.接口就是为了约束方法的格式(参数和返回值类型)而存在的 02 ...
- C#面向对象(三)接口实现多态
一.如何用接口实现多态? 1.定义一个接口. using System; using System.Collections.Generic; using System.Linq; using Syst ...
- No2_4.接口继承多态_Java学习笔记_经典案例
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import jav ...
- Java基础学习笔记八 Java基础语法之接口和多态
接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...
- java接口,接口的特性,接口实现多态,面向接口编程
package cn.zy.cellphone; /**接口是一种引用数据类型.使用interface声明接口,形式 * 形式:public interface 接口名称{} * 接口不能拥有构造方法 ...
- Java 基础 接口和多态
接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...
- Java 面向对象之接口、多态
01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...
- day03(接口,多态)
接口: 概念:是功能的集合,可以当做引用数据类型的一种.比抽象类更加抽象. 接口的成员: 成员变量:必须使用final修饰 默认被 public &a ...
- Java 接口和多态
接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样 ...
- 11_Java面向对象_第11天(接口、多态)_讲义
今日内容介绍 1.接口 2.多态 01接口的概念 * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的"类". 接口只描述所应该具备的方法,并没有具 ...
随机推荐
- Common issue on financial information exchange (FIX) Connectivity[z]
FIX Protocol Session Connectivity Hi guys, in this post I would like share my experience with financ ...
- 操作ini配置文件设计一个最基本的可视化数据库系统
对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能. ini配置文件的用法参考我以前写的 ...
- sqlserver select 查询字段if判断用法
SELECT TOP 1000 [id], case when group_id>1 then 'vip' else '普通会员' end F ...
- Windows与Linux相互远程桌面连接
对于远程桌面连接Linux,大家可能会第一时间想到使用VNC,,远程桌面Windows,大家第一时间会想到使用Windows自带的远程桌面.那么有没有办法,使得在Linux中可以远程Windo ...
- IOC容器基本原理
1 IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行 ...
- Objective-C 学习笔记(五) 指针
Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...
- DataTables使用总结
一.使用方法 1.引入JS文件 <script src="js/plugin/datatables/jquery.dataTables.min.js">< ...
- DotNetBar.MetroTilePanel 样式、加载数据、获取数据
描述下:MetroTilePanel包含子集ItemContainer 子集下面又包含子集MetroTileItem 目前我用到的就是这三层 因为需求所以整个模块全部由代码实现 1.ItemCon ...
- asp.net 导出 Excel 身份证格式显示格式问题
<%# Eval("数据").ToString()+" " %> 加上 Excel 中 不会显示科学计数法
- mongodb 日志清理
#!/bin/bash #Rotate the MongoDB logs to prevent a single logfile from consuming too much disk space. ...