演示具有多级继承的抽象类的 C# 程序
抽象类是实现抽象的方式。它是一个永远不会被直接实例化的特殊类。该类应至少包含一个抽象方法,并在类定义中用 abstract 关键字标记。这个类的主要目的是为派生类提供一个蓝图,并设置一些规则,派生类在继承抽象类时必须实现什么。抽象类可以用作基类,所有派生类都必须实现抽象定义。
语法:
abstract class classname
{
// Method Declaration in abstract class
}
这里,类名是一个抽象类的名称。我们可以在其中声明任意数量的方法
多级继承是一种继承类型,其中派生类将继承基类,并且派生类对其他类的行为也类似于基类。例如,我们有三个名为 class1、class2 和 class3 的类。这里,class3 派生自 class2,class2 派生自 class1。
语法:
class GFG : Abstract_Class
{
// Method definition for abstract method
}
抽象类的多级继承
给定一个抽象类,我们的任务是将抽象类实现到父类中,然后实现多级继承。所以,让我们借助一个例子来理解。
class GFG : Abstract_class
{
// Method definition for abstract method
}
// First child class extends parent
class GFG2 : GFG
{
// Method definition
}
// Second child class extends first child class
class GFG3 : GFG2
{
// Method definition
}
这里,GFG 是父类,GFG2 和 GFG3 是扩展父类的子类。
示例:
C#
// C# program to illustrate abstract class
// with multiple-level Inheritance
using System;
// Abstract class
abstract class Abstract_class
{
// Method declaration for abstract class
public abstract void abstract_method();
}
// Parent class
class GFG : Abstract_class
{
// Method definition for abstract method
public override void abstract_method()
{
Console.WriteLine("Abstract method is called");
}
}
// First child class extends parent
class GFG2 : GFG
{
// Method definition
public void Mymethod1()
{
Console.WriteLine("Method from GFG2 class");
}
}
// Second child class extends first child class
class GFG3 : GFG2
{
// Method definition
public void Mymethod2()
{
Console.WriteLine("Method from GFG3 class");
}
}
class Geeks{
// Driver code
public static void Main(String[] args)
{
// Creating an object of GFG3 class
GFG3 obj = new GFG3();
// Call the methods using GFG3 class
obj.abstract_method();
obj.Mymethod1();
obj.Mymethod2();
}
}
输出:
Abstract method is called
Method from GFG2 class
Method from GFG3 class
说明:在本例中,我们创建了一个名为“Abstract_class”的抽象类,并在其中声明了一个名为“abstract_method”的方法。然后我们通过覆盖抽象类的方法创建了一个名为“GFG”的父类。之后,我们创建了第一个名为“GFG2”的子类,它继承了父类,并在其中定义了一个名为“Mymethod1”的方法。然后创建了第二个名为“GFG3”的子类,它继承了第一个子类,并在其中定义了一个方法“Mymethod2”。最后,我们创建了包含 main 方法的主类,然后为第二个子类创建了一个对象(名为“obj”)并调用所有声明的方法并在屏幕上获得输出。