📜  C#程序在同一个类中继承抽象类和接口

📅  最后修改于: 2022-05-13 01:55:45.914000             🧑  作者: Mango

C#程序在同一个类中继承抽象类和接口

抽象类是实现抽象的方式。它是一个永远不会被直接实例化的特殊类。该类应至少包含一个抽象方法,并在类定义中用 abstract 关键字标记。这个类的主要目的是为派生类提供一个蓝图,并设置一些规则,派生类在继承抽象类时必须实现什么。抽象类可以用作基类,所有派生类都必须实现抽象定义。

语法

abstract class classname
{
    // Method Declaration in abstract class
}

这里,类名是一个抽象类的名称。我们可以在其中声明任意数量的方法。

接口就像一个类,它也可以有方法、属性、事件和索引器作为它的成员。但是接口只能有成员的声明。接口成员的实现将由隐式或显式实现接口的类给出。或者我们可以说它是类的蓝图。

语法

interface interface_name
{
    // Method Declaration in interface
}

现在给定一个接口和一个抽象类,现在我们的任务是在同一个类中继承接口和抽象类。

方法:

  • 使用 abstract 关键字创建一个抽象类,并为抽象方法编写方法定义。
  • 使用 interface 关键字创建接口并为 Interface 编写方法定义。
  • 创建一个名为 GFG 的类,它将继承抽象类和接口,如下所示:
class GFG : Abstract_Class, Interface
{
    // Method definition for abstract method
    // Method definition for interface
}
  • 在 GFG 类中编写抽象类和接口的方法定义。
  • 在 main 内部,为抽象类和接口创建两个对象。
  • 使用这些对象调用方法并显示输出。

示例

C#
// C# program to illustrate how to inherit an
// abstract class and interface in the same class
using System;
 
// Abstract class
abstract class Abstract_Class
{
     
    // Method declaration in abstract class
    public abstract void abstract_method();
}
 
// Interface
interface Interface
{
     
    // Method declaration in interface
    void interface_method();
}
 
// Here, GFg class inherit abstract class and interface
class GFG : Abstract_Class, Interface
{
     
    // Method definition for abstract method
    public override void abstract_method()
    {
        Console.WriteLine("I am the method of abstract class");
    }
     
    // Method definition for interface
    public void interface_method()
    {
        Console.WriteLine("I am the method of interface");
    }
}
 
class Geeks{
 
// Driver code
public static void Main(String[] args)
{
     
    // Creating objects
    Abstract_Class ac = new GFG();
    Interface inf = new GFG();
     
    // Calling the methods of abstract class
    // and interface
    ac.abstract_method();
    inf.interface_method();
}
}


输出

I am the method of abstract class
I am the method of interface