15.初始接口1.0 C#

这是一个用于实验接口的代码

适合初认识接口的人

【CSDN开头介绍】(文心一言AI生成)

在C#编程世界中,接口(Interface)扮演着至关重要的角色,它定义了一组方法,但不提供这些方法的实现。接口作为类与类之间通信的契约,确保了不同类之间的解耦与互操作性。今天,我们将深入探讨一个关于接口使用的实例,该实例通过定义一个animals接口及其两个具体实现类DogCat,展示了接口如何在多态性、代码复用以及设计灵活性方面发挥巨大作用。

代码的核心在于animals接口的声明,它要求所有实现该接口的类都必须提供一个Speak方法的实现。DogCat类分别通过实现Speak方法来遵守这一约定,分别输出"Woof!"和"Meow!",模拟了狗和猫的叫声。

此外,代码还巧妙地利用接口作为方法参数,通过MakeAnimalSpeak方法展示了接口如何允许我们编写接受不同类型对象的通用代码,只要这些对象实现了animals接口。这种设计不仅提高了代码的复用性,还增强了系统的扩展性,使得未来可以轻松添加更多实现animals接口的类,而无需修改现有代码。

通过本实例的学习,相信您对C#中接口的使用有了更深入的理解,也掌握了如何利用接口实现多态性、提高代码复用性和设计灵活性的技巧。希望这段代码和解析能为您的编程之路提供有益的启示和帮助。

在使用默认接口功能时,如果版本旧就会像下面这样报错

代码如下:

cs 复制代码
using System;

//声明一个public接口,是animals
public interface animals
{
    //定义一个方法但是没具体设定
    //这意味着实现这个接口的类必须定义这个方法
    void Speak();

    //如果使用下面这个
    //即使实现接口的类没有定义方法也可以使用默认的方法
    //void Speak()
    //{
    //    Console.WriteLine();
    //}

}

//下面Dog类是对接口animals的实现
public class Dog : animals
{
    //提供Speak方法的具体实现来遵守animals接口的约定
    public void Speak()
    {
        Console.WriteLine("Woof!");
    }
}

public class Cat : animals
{
    public void Speak()
    {
        Console.WriteLine("Meow!");
    }
}

class Program
{
    static void Main()
    {

        //创建新的Dog类对象dog
        animals dog = new Dog();
        animals cat = new Cat();

        //对对象使用方法
        dog.Speak();
        cat.Speak();

        //通过传递Dog和Cat对象给MakeAnimalSpeak方法,
        //展示了接口如何允许方法接受不同类型的对象
        MakeAnimalSpeak(dog);
        MakeAnimalSpeak(cat);
        Console.ReadKey();
    }

    //定义了一个名为MakeAnimalSpeak的方法,
    //它接受一个animals类型的参数并调用其Speak方法。
    static void MakeAnimalSpeak(animals animal)
    {
        animal.Speak();
    }
}

输出结果:

cs 复制代码
woof
meow
woof
meow
相关推荐
bicijinlian1 小时前
.Net HttpClient 使用代理功能
c#·.net·httpclient·.net httpclient·httpclient 代理
敲代码的 蜡笔小新6 小时前
【行为型之中介者模式】游戏开发实战——Unity复杂系统协调与通信架构的核心秘诀
unity·设计模式·c#·中介者模式
程序猿多布6 小时前
使用Visual Studio将C#程序发布为.exe文件
c#·visual studio
老衲有点帅8 小时前
C#多线程Thread
开发语言·c#
PascalMing9 小时前
C# 通过脚本实现接口
c#·codeanalysis·接口派生
敲代码的 蜡笔小新13 小时前
【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
观察者模式·unity·设计模式·c#
向宇it13 小时前
【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件
开发语言·ui·unity·c#·编辑器·游戏引擎
FAREWELL0007519 小时前
Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
学习·unity·c#·游戏引擎
码观天工20 小时前
【.NET必读】RabbitMQ 4.0+重大变更!C#开发者必须掌握的6大升级要点
c#·rabbitmq·.net·mq
绿龙术士21 小时前
构建现代化WPF应用:数据驱动开发与高级特性解析
c#·wpf