继承是面向对象编程的一个重要支柱。它是C#中的一种机制,通过这种机制,一个类可以继承另一个类的特性(字段和方法)。
null
重要术语:
- 超级班: 其特征被继承的类称为超级类(或基类或父类)。
- 子类: 继承另一个类的类称为子类(或派生类、扩展类或子类)。除了超类字段和方法之外,子类还可以添加自己的字段和方法。
- 可重用性: 继承支持“可重用性”的概念,也就是说,当我们想要创建一个新类,并且已经有一个类包含我们想要的一些代码时,我们可以从现有的类派生出我们的新类。通过这样做,我们可以重用现有类的字段和方法。
如何使用继承
用于继承的符号是 : . 语法:
class derived-class : base-class { // methods and fields . . }
例子: 在下面的继承示例中,类GFG是基类,类Geeksforgeks是扩展GFG类的派生类,类Sudo是运行程序的驱动程序类。
// C# program to illustrate the // concept of inheritance using System; namespace ConsoleApplication1 { // Base class class GFG { // data members public string name; public string subject; // public method of base class public void readers( string name, string subject) { this .name = name; this .subject = subject; Console.WriteLine( "Myself: " + name); Console.WriteLine( "My Favorite Subject is: " + subject); } } // inheriting the GFG class using : class GeeksforGeeks : GFG { // constructor of derived class public GeeksforGeeks() { Console.WriteLine( "GeeksforGeeks" ); } } // Driver class class Sudo { // Main Method static void Main( string [] args) { // creating object of derived class GeeksforGeeks g = new GeeksforGeeks(); // calling the method of base class // using the derived class object g.readers( "Kirti" , "C#" ); } } } |
输出:
GeeksforGeeks Myself: Kirti My Favorite Subject is: C#
C语言中的继承类型#
下面是C#在不同组合中支持的不同类型的继承。
- 单一继承: 在单一继承中,子类继承一个超类的特征。在下图中,类A充当派生类B的基类。
- 多级继承: 在多级继承中,一个派生类将继承一个基类,并且该派生类也将充当其他类的基类。在下图中,类A充当派生类B的基类,而派生类B又充当派生类C的基类。
- 层次继承: 在层次继承中,一个类充当多个子类的超类(基类)。在下图中,类A充当派生类B、C和D的基类。
- 多重继承(通过接口): 在多重继承中,一个类可以有多个超类,并从所有父类继承特征。请注意 C#不支持多重继承 上课。在C#中,我们只能通过接口实现多重继承。在下图中,C类来自接口A和B。
- 混合继承(通过接口): 它是上述两种或两种以上继承类型的混合。由于C#不支持类的多重继承,因此类也不支持混合继承。在C#中,我们只能通过接口实现混合继承。
C语言中关于继承的重要事实#
- 默认超类 :除了没有超类的对象类外,每个类都有一个且只有一个直接超类(单一继承)。在没有任何其他显式超类的情况下,每个类都隐式地是对象类的子类。
- 超类只能是一个: 一个超类可以有任意数量的子类。但子类只能有 一 超类。这是因为C#不支持类的多重继承。虽然有接口,但C#支持多重继承。
- 继承构造函数: 子类从其超类继承所有成员(字段、方法)。构造函数不是成员,因此它们不会被子类继承,但可以从子类调用超类的构造函数。
- 私有成员继承: 子类不会继承其父类的私有成员。但是,如果超类具有用于访问其私有字段的属性(get和set方法),则子类可以继承。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END