You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我是否正确理解了C#中类属性继承的核心概念?

你的类与继承设计完全正确!

从你的描述来看,你精准抓住了C#中继承的核心逻辑:基类封装所有子类共有的属性/行为,子类继承基类并扩展专属特性。咱们用代码把你的设计落地,更直观地验证:

基类 Car 的实现

public class Car
{
    // 所有汽车共有的属性
    public string Manufacturer { get; set; }
    public string Model { get; set; }

    // 可选:添加构造函数简化对象初始化
    public Car(string manufacturer, string model)
    {
        Manufacturer = manufacturer;
        Model = model;
    }
}

子类 SportsCar 的实现

继承自Car,并添加跑车专属属性:

public class SportsCar : Car
{
    // 跑车专属属性
    public string Color { get; set; }
    public int TopSpeed { get; set; }

    // 子类构造函数需要调用基类构造函数
    public SportsCar(string manufacturer, string model, string color, int topSpeed)
        : base(manufacturer, model)
    {
        Color = color;
        TopSpeed = topSpeed;
    }
}

子类 FamilyWagon 的实现

同样继承自Car,添加家用旅行车的专属属性:

public class FamilyWagon : Car
{
    // 家用旅行车专属属性
    public double Mpg { get; set; }
    public int BootSize { get; set; } // 假设用整数表示后备箱容积(单位:升)

    public FamilyWagon(string manufacturer, string model, double mpg, int bootSize)
        : base(manufacturer, model)
    {
        Mpg = mpg;
        BootSize = bootSize;
    }
}

简单的使用示例

// 创建跑车实例
var mySportsCar = new SportsCar("Ferrari", "488 GTB", "Rosso Corsa", 330);
Console.WriteLine($"跑车:{mySportsCar.Manufacturer} {mySportsCar.Model},颜色{mySportsCar.Color},最高时速{mySportsCar.TopSpeed}km/h");

// 创建家用旅行车实例
var myWagon = new FamilyWagon("Volvo", "V90", 45.6, 560);
Console.WriteLine($"旅行车:{myWagon.Manufacturer} {myWagon.Model},油耗{myWagon.Mpg}mpg,后备箱容积{myWagon.BootSize}L");

额外说明

  • 子类通过:符号继承基类,自动获得基类的Manufacturer和Model属性,无需重复定义,这就是继承的代码复用核心优势。
  • 子类构造函数必须通过: base(...)调用基类的构造函数,确保基类的属性被正确初始化。
  • 如果需要,你还可以给基类添加通用方法(比如StartEngine()),子类会自动继承;若基类方法标记为virtual,子类还能根据自身需求重写实现。

内容的提问来源于stack exchange,提问作者Paul_G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:33:06