首页 > 编程语言 >c# 接口

c# 接口

时间:2024-07-28 22:40:53浏览次数:14  
标签:Fly fly c# void System 接口 using

  1. 在 C# 中,接口是一种定义了一组方法、属性、事件或索引器的契约,但不提供具体实现。任何类或结构体都可以实现一个或多个接口,从而承诺提供接口中定义的功能。
  2. 特点:定义方法:接口只定义方法的签名,没有实现。
    多重继承:一个类可以实现多个接口,允许不同类型的行为组合。
    多态性:可以通过接口类型引用不同实现,从而实现代码的灵活性和可扩展性。
  3. 实例1:
    ``public interface IFly
    {
    void Fly();
    }

public class Bird : IFly
{
public void Fly()
{
Console.WriteLine("Bird is flying.");
}
}
``

  1. 实例2:
    ``using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

namespace test_09_接口
{
internal class Program
{
static void Main(string[] args)
{
// Plane p = new Plane();
//p.Fly();
//p.FlyAttack();
// Brid b = new Brid();
//b.Fly();
//b.FlyAttack();

        IFly fly;//声明一个fly
        fly = new Plane();//把Plane赋给fly
        fly.Fly();//fly有了Plane的功能
        fly.FlyAttack();

        fly = new Brid();
        fly.FlyAttack();
        fly.Fly();
        //以上fly叫做多态
        
    }
}

}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test_09_接口
{
interface IFly
{
void Fly();
void FlyAttack();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test_09_接口
{
class Plane : IFly
{
public void Fly()
{
Console.WriteLine("飞机在空中飞");
}

    public void FlyAttack()
    {
        Console.WriteLine("飞机在空中攻击");
    }
}

}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test_09_接口
{
internal class Brid : IFly
{
public void Fly()
{
Console.WriteLine("小鸟在空中飞");
}

    public void FlyAttack()
    {
        Console.WriteLine("小鸟在空中攻击");
    }
}

}
``

标签:Fly,fly,c#,void,System,接口,using
From: https://www.cnblogs.com/lijie-lijie/p/18329035

相关文章

  • 关于 Microsoft 支持和恢复助手
    Microsoft支持和恢复助手的工作原理是运行测试来找出问题并为确定的问题提供最佳解决方案。它当前可修复Office、Microsoft365或Outlook问题。如果支持和恢复助手无法修复你的问题,则它将提出后续操作建议并帮助你联系Microsoft支持人员。以下是用户面临的一些常见问......
  • final cut pro 入门
    浏览窗口相关范围选择:i开始o结束;按住command拖拽;command+shift+i/o也可以选择多个。option+x取消选择。时间线相关范围选择:i开始o结束浏览窗口的片段插入到时间线窗口前提:在浏览窗口进行范围选择好相应片段(可使用i/o选择好开始与结束范围)按Q可以放到主......
  • VS2022创建C C++ GTEST工程
    原因需要对带代码进行单元测试,选择在Visualstudio中使用GTEST框架。实施创建一个常规的控制台可执行程序。然后使用NUGET安装包安装GTEST头文件和动态库,同时安装GTESTADAPTER。安装可能提示找不到包源,此时需要根据提示配置一下,注意通配符很关键,不要问为甚吗,就是有bug......
  • docker 配置安装宝塔
    宝塔镜像https://hub.docker.com/r/btpanel/baota配置宝塔第一步:创建一个名为bt-data的目录,此目录将存储宝塔数据。$mkdirbt-data$chmod-R755bt-data第二步:在bt-data目录中创建一个名为docker-compose.yml的文件,并将以下内容复制并粘贴到文件中。version:'3......
  • Nacos-微服务注册中⼼(Nacos简介 Nacos配置管理)
    目录一、 微服务的注册中⼼1.注册中⼼的主要作⽤ 2.常⻅的注册中⼼二、Nacos简介 nacos实战⼊⻔1.搭建nacos环境2.将订单微服务注册到nacos2.1 在pom.xml中添加nacos的依赖2.2在主类上添加@EnableDiscoveryClient注解2.3在application.yml中添加nacos服务......
  • C语言笔记(第n版):编译器与构建系统
    一、C语言标准与编译器        C编译器是软件开发中至关重要的工具,它的主要作用是将人类可读的C语言源代码转换为计算机能够理解和执行的可执行代码。    (一)C语言标准的制定C语言标准的制定是一个逐步发展和完善的过程。在早期,C语言缺乏统一的标准,这导致......
  • Animation Clips
            动画剪辑是Unity用来表示对象运动姿态的基础资源,你可以从模型文件中导入动画剪辑,也可以在Unity内部创建简单的动画剪辑。ImportAnimationFromModel        在导入时只需要确保模型的Animation选项卡中的ImportAnimation是被激活的,对于没有动画剪......
  • 解决yolo使用engine模型推理报错AttributeError: “NoneType’cbject has no attribut
    目录起因分析两种解决方案方法一:卸载生产服务器的tensorrt,下载与训练服务器相同版本方法二:将训练服务器训练的pt模型下载出来到生产服务器导出起因在做yolo模型训练时使用了训练服务器,训练结束把模型转换成了.engine模型,在训练服务器上可以正常使用,但把模型放到生成服......
  • 提高 C# 的生产力:C# 13 更新完全指南
    提高C#的生产力:C#13更新完全指南 前言#预计在2024年11月,C#13将与.NET9一起正式发布。今年的C#更新主要集中在 refstruct 上进行了许多改进,并添加了许多有助于进一步提高生产力的便利功能。本文将介绍预计将在C#13中添加的功能。注意:目前C#13还未......
  • win平台利用winsw将php-cgi作为系统服务,支持服务的正常启动/停止/重启
    首先,需要有winsw,在GitHub搜索winsw,点击release跳转到下载页面选择版本进行下载或点击此链接 Releases·winsw/winsw(github.com)其次,将winsw复制到php目录,重命名为phpcgi-service.exe并增加配置文件phpcgi-service.xml和stop-cgi.bat,其中 phpcgi-service.xml的......