📜  C#|接口中的继承

📅  最后修改于: 2021-05-30 00:19:20             🧑  作者: Mango

C#允许用户将一个接口继承到另一个接口。当类实现继承的接口时,它必须提供接口继承链中定义的所有成员的实现。

重要事项:

  • 如果一个类实现一个接口,则必须实现该接口定义的所有方法,包括基本接口方法。否则,编译器将引发错误。
  • 如果两个衍生的接口和基地接口声明相同成员则基本接口成员名称是由派生的接口成员名称隐藏。

Synatx:

// declaring an interface
access_modifier interface interface_name 
{
   // Your code
}

// inheriting the interface
access_modifier interface interface_name : interface_name
{
    // Your code
}

范例1:

// C# program to illustrate the concept
// of inheritance in interface
using System;
  
// declaring an interface
public interface A {
      
    // method of interface
    void mymethod1();
    void mymethod2();
}
  
// The methods of interface A 
// is inherited into interface B
public interface B : A {
      
    // method of interface B
    void mymethod3();
}
  
  
// Below class is inherting
// only interface B
// This class must 
// implement both interfaces
class Geeks : B
{
      
    // implementing the method
    // of interface A
    public void mymethod1()
    {
        Console.WriteLine("Implement method 1");
    }
      
    // Implement the method 
    // of interface A
    public void mymethod2()
    {
        Console.WriteLine("Implement method 2");
    }
      
    // Implement the method
    // of interface B
    public void mymethod3()
    {
        Console.WriteLine("Implement method 3");
    }
}
  
// Driver Class
class GFG {
  
    // Main method
    static void Main(String []args)
    {
          
        // creating the object
        // class of Geeks
        Geeks obj = new Geeks();
          
        // calling the method 
        // using object 'obj'
        obj.mymethod1();
        obj.mymethod2();
        obj.mymethod3();
    }
}
输出:
Implement method 1
Implement method 2
Implement method 3

范例2:

// C# program to illustrate the concept
// of inheritance in the interface
using System;
  
// declaring an interface
public interface Votes 
{
      
    // method of interface 
    void vote_no(int a);
}
  
// The methods of interface Votes
// is inherited into interface Details
public interface Details : Votes 
{
      
    // method of interface Details
    void detailsofauthor(string n, int p);
}
  
// Below class is inheriting 
// the interface Details
// This class must implement 
// the methods of both interface
// i.e. Votes and Details
class TechinalScriptWriter : Details 
{
  
    // implementing the method 
    // of interface Votes
    public void vote_no(int a)
    {
        Console.WriteLine("Total number of votes is: {0}", a);
    }
      
    // implementing the method 
    // of interface Details 
    public void detailsofauthor(string n, int p)
    {
        Console.WriteLine("Name of the author is: {0}", n);
          
        Console.WriteLine("Total number of published" + 
                                " article is: {0}", p);
    }
}
  
// Driver Class
class GFG {
  
    // Main method
    static void Main()
    {
  
        // Creating the objects of 
        // TechinalScriptWriter class
        TechinalScriptWriter obj = new TechinalScriptWriter();
          
        // calling the methods by passing
        // the required values
        obj.vote_no(470045);
        obj.detailsofauthor("Siya", 98);
    }
}
输出:
Total number of votes is: 470045
Name of the author is: Siya
Total number of published article is: 98