C#面向对象,如何使用继承

本文介绍了C#中的继承概念,通过美食制作的例子展示了如何使用继承创建类的层次结构。继承允许子类重用、扩展和修改父类的行为,以此实现代码的复用和系统扩展。文中还强调了继承的特性,如单继承、抽象类和接口的使用,以及如何防止类被继承。此外,讨论了在实际项目中如何考虑继承设计,并提供了继承应用的实例。
摘要由CSDN通过智能技术生成

继承,类似于老人家说的开枝散叶,从一个根起,不断的分叉生成很多枝叶。而继承就是这样子。

继承适用于某类继承自另外一个类,该类可以是普通类,也可以是抽象类。

如果是接口的话,我们术语不叫继承,叫实现。所以,继承是针对类而言的。

 

为何要继承?

我们常听说继承衣钵,一般是指收了徒弟,传授本领,有个人接班,发扬光大,做出比上辈更光彩的成绩。

嗯,C#中的继承也是这个道理。通过继承,可以创建新的类,以便重用、扩展、修改父类的行为。这不就是发扬光大吗。

继承还有开枝散叶的功能,一个父类,可以被很多个子类继承,实现不一样的行为,也就是师傅可以收很多徒弟,每个徒弟都可以发扬光大。而子类,又可以被孙子类继承,这样可以一直发散出去。

 

下面演示了“美食”的例子,代码里的中文是为了让读者方便,实际项目应写英文。

public class 美食
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public virtual void Make() { }
}

public class 中餐 : 美食
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public override void Make() { }
}

public class 西餐 : 美食
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public override void Make() { }
}

而中餐,又可能会有八大菜系:

public class 闽菜 : 中餐
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public override void Make() { }
}

public class 川菜 : 中餐
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public override void Make() { }
}

public class 粤菜 : 中餐
{
    /// <summary>
    /// 制作美食
    /// </summary>
    public override void Make() { }
}

 

关于继承的一些要点:

1.继承的父类,只有一个,即它是单继承的。

2.如果您要防止父类被直接实例化(即可以被new一个对象),那么你可以声明为abstract抽象类。

3.接口可以给类定义特定的功能,类可以实现多个接口。

4.如果您要防止类被继承,则可以加入关键字sealed,密封。密封的作用是声明无法被继承,即不能被扩展。

 

实际项目中关于继承的设计思考

1.写代码前,您应有前期需求调研准备。

2.您应有简单建模,了解全局结构。

3.针对您对需求的深刻了解,应该要知道哪些是未来要扩展的,这是您可能需要用到继承的地方。

 

祝您用餐愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值