C#类继承示例以及使用注意事项
在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'派生 {// 类体 }