C# 实例化接口对象的方法

发布时间 - 2026-01-10 23:14:01    点击率:

在head first 设计模式中 用到了很多很多接口对象

首先澄清一个问题,就是接口不仅可以声明对象,而且可以把对象实例化,还可以当做参数被传入。

一、接口回调

这就是继承中的向上转型。父类 FL=new 子类();只不过这里的父类就是interface接口。(个人认为这里不管是class的override还是interface的重写,都是一样的用法)

可以把实现某一接口类创建的对象的引用赋给该接口声明的接口变量,那么该 接口变量就可以调用被类实现的接口中的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口方法

直接上代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
  interface Itemp
  {
    double plus();
  }
  public class num : Itemp
  {
    double aa, bb;
    public num(double a, double b)
    {
      this.bb = b;
      this.aa = a;
    }
    public double plus()
    {
      return (aa * bb);
    }
  }
  class Program
  {
    static void Main(string[] args)
    {
      num n = null;//声明类对象引用
      Itemp tm = null;//声明接口对象引用
      tm = new num(1.1, 2.2);//接口回调(向上转型)
      Console.WriteLine(tm.plus());
      Console.ReadKey();
    }
  }
}

通过上面的例子,我们不难看出,接口对象的实例化实际上是一个接口对象作为一个引用,指向实现了它方法的那个类中的所有方法,这一点非常象C++中的函数指针(在C#中类似委托),但是却是有区别的。C#中的接口对象实例化实际上是一对多的,而C++中的函数指针是一对一的。

但是需要注意的是,接口对象的实例化必须用实现它的类来实例化,而不能用接口本身实例化。用接口本身实例化它自己的对象在C#中是不允许的。

以上这篇C# 实例化接口对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# c  # 接口实例化  # C# 泛型类(函数)的实例化小例子  # 举例讲解C#编程中委托的实例化使用  # C#中的静态成员、静态方法、静态类介绍  # 浅析C#静态类  # 静态构造函数  # 静态变量  # C#中静态方法和实例化方法的区别、使用  # 详解C#实例化对象的三种方式及性能对比  # c#中单例类与静态类的区别以及使用场景  # C#实例化和静态类对象调用对比  # 给大家  # 回调  # 自己的  # 的是  # 是一个  # 还可以  # 是有  # 子类  # 这就是  # 而不  # 希望能  # 作为一个  # 是一对  # 重写  # 一个问题  # 这篇  # 需要注意  # 小编  # 大家多多  # 就可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信推文制作网站有哪些,怎么做微信推文,急?  韩国服务器如何优化跨境访问实现高效连接?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Python面向对象测试方法_mock解析【教程】  如何在阿里云域名上完成建站全流程?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何正确下载安装西数主机建站助手?  Thinkphp 中 distinct 的用法解析  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel怎么清理缓存_Laravel optimize clear命令详解  canvas 画布在主流浏览器中的尺寸限制详细介绍  EditPlus中的正则表达式 实战(2)  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  微信小程序 scroll-view组件实现列表页实例代码  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  JS碰撞运动实现方法详解  Laravel怎么使用Intervention Image库处理图片上传和缩放  Android仿QQ列表左滑删除操作  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel如何处理表单验证?(Requests代码示例)  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何在橙子建站上传落地页?操作指南详解  如何用腾讯建站主机快速创建免费网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel怎么为数据库表字段添加索引以优化查询  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  如何快速搭建个人网站并优化SEO?  如何在建站之星绑定自定义域名?  如何在万网主机上快速搭建网站?  Swift开发中switch语句值绑定模式  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何用y主机助手快速搭建网站?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何用好域名打造高点击率的自主建站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】