目录:
定义-基类-.NET是什么意思?
在C#的上下文中,基类是用于创建或派生其他类的类。 从基类派生的类称为子类,子类或派生类。 基类不从任何其他类继承,并且被视为派生类的父类。
基类构成通过派生完成继承的方式。 从基类派生的类继承数据和行为。 例如,车辆可以是基类,可以从中导出派生类汽车和公共汽车。 汽车和公共汽车都是车辆,它们各自代表着自己的基础类专长。
与Java中一样,但与C ++不同,C#不支持类的多重继承。 C#与Java的不同之处在于,它为所有虚拟成员显式标记一个虚拟修饰符。
基类也称为父类或超类。
Techopedia解释了基类-.NET
基类有助于创建一个特殊的类,该类可以重用从基类隐式获得的代码(构造函数和析构函数除外),并通过在派生类中添加或覆盖与派生类相关的成员来扩展基类的功能。 在C#中,事件在基类中声明,而基类可以从派生类引发。 用于封装非特定于特定数据类型的操作的泛型类用作基类,提供泛型行为,以实现灵活性和代码可重用性。
C#中基类的关键属性:
- 使用“ base”关键字在派生类中访问基类成员(构造函数,实例方法或实例属性访问器)。
- 基类在派生类之前自动实例化。
- 派生类可以在实例化期间通过使用具有匹配参数列表的基类构造函数与基类进行通信。
- 可以通过显式强制转换从派生类访问基类成员。
- 由于基类本身可以是派生类,因此一个类可能具有许多基类。
- 派生类的成员可以访问基类的公共,受保护的内部和受保护的内部成员。
- 由于继承的传递性,尽管派生类只有一个基类,但它继承了在基类的父级中声明的成员。
- 通过将基类中的方法声明为虚拟方法,派生类可以使用其自己的实现覆盖该方法。 被覆盖和被覆盖的方法和属性都必须具有相同的访问级别修饰符,例如虚拟,抽象或覆盖。
- 当关键字“抽象”用于方法时,应在直接从该类继承的任何非抽象类中将其覆盖。
- 抽象基类在声明中使用“抽象”关键字创建,并用于防止使用“新”关键字直接启动。 它们只能通过实现抽象方法的派生类使用。
- 通过将所有成员声明为“密封”,基类可以防止其他类从其继承。
- 通过使用关键字“ new”可以指示将基类成员隐藏在派生类中,以指示该成员不打算替代基成员。 如果未使用“ new”,则编译器将生成警告。
尽管基类和接口可以互换使用,但是从版本控制的角度来看,类比接口更灵活。 除以下情况外,在大多数情况下,首选基类:
- 几个不相关的类构成派生类的基础
- 类已经建立了基础类
- 聚合不合适或不可行
