亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

掌握 C# 接口:定义、实现与实战场景全解析

C# 接口深度解析

本指南将带你深入理解 C# 接口的核心概念,演示如何创建与实现接口,并通过真实场景展示其强大威力。

什么是 C# 接口?

在 C# 中,接口是一种契约,它定义了一组方法、属性、事件或索引器的签名,但不提供任何实现。与抽象类不同,接口的所有成员均隐式为 public 且 abstract。这一特性使接口成为定义“能力”的理想工具,让多个无继承关系的类都能共享同一组行为规范。

interface IPolygon { void CalculateArea(); }

实现接口

类通过冒号(:)语法实现接口,必须为接口的所有成员提供具体实现。这与继承语法一致,但语义上是“实现契约”而非“继承实现”。

using System;

namespace CsharpInterface {
    interface IPolygon {
        void CalculateArea(int length, int breadth);
    }

    class Rectangle : IPolygon {
        public void CalculateArea(int length, int breadth) {
            int area = length * breadth;
            Console.WriteLine($"矩形面积: {area}");
        }
    }

    class Program {
        static void Main(string[] args) {
            Rectangle rect = new Rectangle();
            rect.CalculateArea(100, 200);
        }
    }
}

输出

矩形面积: 20000

实现多个接口

C# 允许一个类同时实现多个接口,从而实现类型层面的多重继承。这弥补了 C# 不支持多重类继承的限制。

using System;

namespace CsharpInterface {
    interface IPolygon {
        void CalculateArea(int a, int b);
    }

    interface IColor {
        void GetColor();
    }

    class Rectangle : IPolygon, IColor {
        public void CalculateArea(int a, int b) {
            int area = a * b;
            Console.WriteLine($"矩形面积: {area}");
        }

        public void GetColor() {
            Console.WriteLine("红色矩形");
        }
    }

    class Program {
        static void Main(string[] args) {
            Rectangle r = new Rectangle();
            r.CalculateArea(100, 200);
            r.GetColor();
        }
    }
}

输出

矩形面积: 20000 红色矩形

使用接口引用实现多态

虽然不能直接实例化接口,但可以声明接口类型的变量,并将其指向任意实现该接口的类实例。这是实现多态的核心机制之一。

using System;

namespace CsharpInterface {
    interface IPolygon {
        void CalculateArea(int length, int breadth);
    }

    class Rectangle : IPolygon {
        public void CalculateArea(int length, int breadth) {
            int area = length * breadth;
            Console.WriteLine($"矩形面积: {area}");
        }
    }

    class Program {
        static void Main(string[] args) {
            IPolygon poly = new Rectangle(); // 接口引用指向实现类实例
            poly.CalculateArea(100, 200);
        }
    }
}

输出

矩形面积: 20000

实战案例:多态形状面积计算

下例定义了 IPolygon 接口,并由 Rectangle 与 Square 两个具体形状类实现。每个形状独立计算面积,展示了接口如何统一不同类型的行为。

using System;

namespace CsharpInterface {
    interface IPolygon {
        void CalculateArea();
    }

    class Rectangle : IPolygon {
        public void CalculateArea() {
            int length = 30, breadth = 90;
            int area = length * breadth;
            Console.WriteLine($"矩形面积: {area}");
        }
    }

    class Square : IPolygon {
        public void CalculateArea() {
            int side = 30;
            int area = side * side;
            Console.WriteLine($"正方形面积: {area}");
        }
    }

    class Program {
        static void Main(string[] args) {
            Rectangle rect = new Rectangle();
            rect.CalculateArea();

            Square sq = new Square();
            sq.CalculateArea();
        }
    }
}

输出

矩形面积: 2700 正方形面积: 900

为什么要使用 C# 接口?

C语言

  1. 长车道无线监测方案:树莓派集成低成本驱动道传感器
  2. SPICE 命令行界面使用详解
  3. C# 接口完全指南:定义契约、实现多态与解耦设计
  4. 精通 Java 接口:概念、实现与最佳实践
  5. Java 集合框架:核心接口、实现类与实战用法
  6. Java Collection 接口:核心概念与常用方法
  7. 精通 Java Queue 接口:方法、实现类与实战应用
  8. 精通 Java Deque 接口:特性、方法与实战示例
  9. 掌握 Java NavigableSet 接口:导航、排序与实战示例
  10. 掌握 Java Lambda 表达式:从基础到 Stream API 实战
  11. Java 接口全解析:定义契约、默认方法、多实现与标记接口
  12. Java 9 接口私有方法:增强封装与代码复用