接口与类的关系(一)

简介: 接口与类的关系(一)1.一个类继承一个接口 2.一个类继承两个接口 3.一个类继承三个接口 4.两个类继承一个接口 5.三个类继承一个接口

接口与类的关系(一)

1.一个类继承一个接口

//接口命名以“I”开头
interface IFly
{
    void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
class Bird : IFly
{
    public void Fly()  //这里写上public,实例化以后可以在Main中调用
    {
        Console.WriteLine("天高任鸟飞");
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        Bird bird = new Bird(); //类的实例化
        bird.Fly();   //调用已经实现的接口方法 
    }
}

image.png
2.一个类继承两个接口

//接口命名以“I”开头
interface IFly
{
    void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
interface IEat
{ 
    void Eat();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
class Bird : IFly, IEat
{
    public void Fly()  //这里写上public,实例化以后可以在Main中调用
    {
        Console.WriteLine("天高任鸟飞");
    }
    public void Eat()
    {
        Console.WriteLine("壮士饥餐胡虏肉");
    }
}
internal class Program
{
    static void Main(string[] args)
    {
        Bird bird = new Bird(); //类的实例化
        bird.Fly();   //调用已经实现的IFly接口方法 
        bird.Eat();   //调用已经实现的IEat接口方法
    }
}

image.png
3.一个类继承三个接口

//接口命名以“I”开头
interface IFly
{
    void Fly(); //这里不写内容,只声明函数;新版本c# 8.0支持写内容
}
interface IEat
{ 
    void Eat();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
interface IDrink
{ 
    void Drink();//这里不写内容,只声明函数,新版本c# 8.0支持写内容
}
class Bird : IFly, IEat
{
    public void Fly()  //这里写上public,实例化以后可以在Main中调用
    {
        Console.WriteLine("天高任鸟飞");
    }
    public void Eat()
    {
        Console.WriteLine("壮士饥餐胡虏肉");
    }
    public void Drink()
    {
        Console.WriteLine("笑谈渴饮匈奴血");
    }
}
internal class Program
{
    static void Main(string[] args)
    {
        Bird bird = new Bird(); //类的实例化
        bird.Fly();   //调用已经实现的IFly接口方法 
        bird.Eat();   //调用已经实现的IEat接口方法
        bird.Drink();//调用已经实现的IDrink接口方法
    }
}

image.png
4.两个类继承一个接口

//定义接口,开头以"I",遵循大驼峰命名法
//大驼峰命名法,常用于类名、函数名、接口名、命名空间名的定义,首字母大写,后面首字母也大写
//小驼峰命名法,常用于变量名、形参名、实例名的定义,首字母小写,后面单词首字母大写
interface ICanRun
{ 
    void Run();
}
//定义骏马(骐骥)的类,继承ICanRun接口
class FineHorse : ICanRun   
{ 
    public void Run() 
    {
        Console.WriteLine("骐骥一跃,不能十步;");
    }
}
//定义驽马的类,继承ICanRun接口
class OldHorse : ICanRun
{
    public void Run()
    {
        Console.WriteLine("驽马十驾,功在不舍。");
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        FineHorse fineHorse = new FineHorse(); //实例名采用小驼峰命名法
        OldHorse oldHorse = new OldHorse();
        fineHorse.Run();//调用接口ICanRun的实现方法
        oldHorse.Run();//调用接口ICanRun的实现方法
    }
}

image.png
5.三个类继承一个接口

//定义一个春雨接口
interface ISpringRain
{
    void SpringRain();
}
//定义诗人杜甫类 
class DuFu : ISpringRain
{
    public void SpringRain()
    {
        Console.WriteLine("好雨知时节,当春乃发生。");
        Console.WriteLine("随风潜入夜,润物细无声。");
        Console.WriteLine();
    }
}
//定义浩然类 
class HaoRan : ISpringRain
{
    public void SpringRain()
    {
        Console.WriteLine("喜雨迎春到,晶晶映翠晴。");
        Console.WriteLine("雨晴唤新绿,迟日暖人间。");
        Console.WriteLine();
    }
}
//定义诗人陆游类
class LuYou : ISpringRain
{
    public void SpringRain()
    {
        Console.WriteLine("小楼一夜听春雨,深巷明朝卖杏花 ");
    }
}
internal class Program
{
    static void Main(string[] args)
    {
        DuFu duFu = new DuFu(); //实例化杜甫类
        HaoRan haoRan = new HaoRan();//实例化浩然类
        LuYou luYou = new LuYou(); //实例化陆游类 
        duFu.SpringRain();// 诗人杜甫遇春雨而喜
        haoRan.SpringRain();//浩然迎春雨而悦
        luYou.SpringRain();//陆游听春雨而兴 

    }
}

image.png
以上不足,请同学、老师批评指正。

相关文章
|
10天前
|
JSON JavaScript 前端开发
在TypeScript和JavaScript如何使用MetaMessage?
MetaMessage 是一种跨语言数据交换协议,支持 TypeScript/JavaScript(通过装饰器自动类型转换)、JSONC 文本与紧凑二进制 wire 格式,兼顾可读性、精度(如 bigint 表示 int64)与性能,旨在替代 JSON、Protobuf 等传统序列化方案。
201 125
|
4天前
|
人工智能 监控 前端开发
学习AI Agent编程-第二天-LangGraph ReAct模式实现
本文介绍了LangChain中ReAct(推理-行动)模式的实践应用:通过“会议室申请”流程,演示LLM如何循环执行“决策→调用工具→评估结果→调整策略”,实现多步任务自动化。代码涵盖流程定义、工具函数与多轮会话测试,验证了其在空闲检查、报备审批、异常处理等场景的可靠性。(239字)
103 7
学习AI Agent编程-第二天-LangGraph ReAct模式实现
|
3天前
|
存储 人工智能 运维
千亿级 AI 搜索的效能实战:从混合检索到 Agentic RAG 的三年实战
本文为2026 Elastic中国大会演讲实录,直击千亿级AI搜索三大挑战:搜索融合(关键词+向量+稀疏检索原生一体)、极致效能(冷热分层、硬件降级、自研FalconSeek引擎)与Agentic RAG演进(结构化知识图谱+智能体自主推理),揭示企业级AI搜索从“能用”到“好用”再到“自进化”的实战路径。
125 7
|
8天前
|
人工智能 API 开发者
阿里云发布为Agent而生的全新AI产品官网“千问云”,模型服务全面Skill、CLI化
5月20日,阿里云发布“千问云”(www.qianwenai.com)——专为Agent时代打造的AI模型服务平台,集成150+主流模型API,首创Skills与CLI工具链,支持模型选型、调用、用量管理等全链路自动化,助力开发者与Agent高效构建AI应用。
895 32
|
1月前
|
人工智能 API 网络安全
神级组合!阿里云部署 OpenClaw X 飞书 CLI,开启 Agent 基建新时代!(附免费使用6个月服务器)
2026年,AI 与自动化基础设施进入全面落地阶段,各类厂商纷纷开放命令行工具(CLI),标志着软件交互从“为人设计”正式转向“为 AI 设计”。本文以阿里云轻量应用服务器(Lighthouse)为载体,完整呈现**一键部署 OpenClaw、对接飞书 CLI、实现 AI 全自动执行任务**的全流程,让 AI 真正拥有“动手能力”,实现消息自动发送、文献自动整理、知识库自动维护等高频办公场景,真正做到一句话下达指令,AI 全程独立完成。
465 26
|
1月前
|
人工智能 机器人 API
阿里云服务器玩转OpenClaw教程|免费领6月云服务器+配置+飞书接入+让龙虾成为公众号自动化智能分身指南
很多AI爱好者因为缺少稳定服务器,无法长期运行OpenClaw智能体。本文带来一套**零成本阿里云服务器部署方案**,手把手教你搭建OpenClaw环境,并将其改造成可以24小时运行的**公众号智能分身**,实现热点聚合、内容拆解、选题生成、公众号自动发布等全流程自动化能力。
389 24
|
1月前
|
人工智能 机器人 关系型数据库
阿里云RDSClaw介绍:核心优势、使用场景与免费试用开通步骤
RDSClaw是基于阿里云推出的开源OpenClaw构建的数据库原生AI Agent服务,通过RDS多引擎数据库生态,为企业提供数据持久记忆、专业技能矩阵、全面的可观测指标及安全的管控审计能力。RDSClaw支持自然语言交互,实现数据查询、性能诊断、安全事件响应等全场景智能运维,且支持个人微信、钉钉等五类IM通道一键接入。现提供15天免费试用,到期可享包年6折优惠,助力企业低成本快速落地AI能力。
334 21