在C#中,类继承是一种重要的面向对象编程概念,允许一个类(子类)基于另一个类(父类)来定义新的类。以下是一个简单的示例和使用注意事项:
示例
// 基类(父类)
public class Animal
{
public string Name { get; set; }
public void PrintName()
{
Console.WriteLine($"Animal's name is {Name}");
}
}
// 派生类(子类)
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Woof!");
}
}
在这个例子中,Dog
类继承自Animal
类。Dog
类从Animal
类继承了Name
属性和PrintName
方法,并且添加了自己的Bark
方法。
使用注意事项
-
单继承:C#不支持多重继承,一个类只能直接继承自一个基类。例如,
Dog
类只能继承自Animal
类,不能同时继承自其他类。 -
访问修饰符:派生类可以访问其基类的
protected
和public
成员,但不能访问基类的private
成员。例如,Dog
类可以访问Animal
类中的Name
属性和PrintName
方法。 -
方法重写:派生类可以重写(override)其基类的虚方法或抽象方法,以实现特定于派生类的行为。
public class Animal { public virtual void MakeSound() { Console.WriteLine("Animal makes a sound"); } } public class Dog : Animal { public override void MakeSound() { Console.WriteLine("Dog barks"); } }
-
构造函数:派生类可以调用其基类的构造函数,通过使用
base
关键字。public class Animal { public Animal(string name) { Name = name; } } public class Dog : Animal { public Dog(string name) : base(name) { // 可以在这里初始化Dog类特有的属性 } }
-
sealed类和方法:使用
sealed
关键字可以防止其他类继承自该类,或者防止派生类重写方法。public sealed class SealedClass { // 类体 } public class DerivedClass // 错误:无法从sealed类'DerivedClass'派生 { // 类体 }