How do interfaces work in C#?

WBOY
Release: 2023-08-28 22:21:06
forward
595 people have browsed it

C# 中的接口如何工作?

An interface defines a contract that will be implemented by a class or structure. It can contain methods, properties, events, and indexers. An interface is similar to a class, except that it does not hold any data and only specifies the behavior that it can perform (or, more accurately, the behavior that the class that implements it can perform).

A class can implement a behavior or more interfaces. To implement an interface member, a class should have public members with the same method definition as the interface members, i.e. the same name and signature.

For example, IComparer is an interface defined in the System.Collections namespace that defines a contract for methods that compare two objects. The Car class implements the IComparer interface

public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }

   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}
Copy after login

All members on the interface are implicitly abstract and do not have any implementation details. All interface members are public. Access modifiers cannot be used with interface members. A class that implements an interface must provide public methods that implement the interface.

Interfaces can extend other interfaces, for example -

public interface IPerformer { void Perform(); }
public interface ISinger : IPerformer{
   void Sing();
}
Copy after login

Interfaces allow you to include behavior from multiple sources in a single class. Since C# does not allow multiple inheritance like C, interfaces are a way to implement multiple inheritance in C#.

One disadvantage of interfaces is that they are less flexible than classes when you use them to expose an API. When you change the contract of an interface, all classes that implement the interface break and need to be updated to implement the interface.

Example

Real-time demonstration

using System;
class Program{
   static void Main(){
      var carOne = new Car { Name = "Honda", Speed = 100 };
      var carTwo = new Car { Name = "Toyota", Speed = 70 };
      carOne.Drive();
      carTwo.Drive();
   }
}
public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }
   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}
Copy after login

Output

Honda: 100
Toyota: 70
Copy after login

The above is the detailed content of How do interfaces work in C#?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template