C#里的抽象类与接口(开个小头)

这篇博客探讨了C#中的抽象类和接口的概念,强调了它们在软件设计中的重要性,特别是作为多态性和开闭原则的应用。文章通过实例说明如何利用抽象类作为基类,遵循开闭原则来扩展功能,而不修改原有代码。此外,还介绍了接口作为完全抽象的协约,用于解耦和实现高内聚低耦合的设计。
摘要由CSDN通过智能技术生成

总摘要

学习总结刘铁猛老师的课程,写出的如下笔记

接口和抽象类的定义:

  • 接口和抽象类,都是“软件工程产物”。
  • 具体类->抽象类->接口: 他们是越来越抽象,内部实现的东西越来越少。
     (设计模式的学习前提需要透彻理解了接口和抽象类,并能在项目熟练使用。而且需要solid设计原则可以很好运用)
  • 抽象类是未完全实现逻辑的类(可以有字段和非public成员,他们代表了“具体逻辑”)
  • 接口是完全未实现的类(“纯虚类”;只有函数成员;全员public)
  • 接口为了解耦而生:高内聚,低耦合的追求;方便单元测试
  • 接口是个“协约”
  • 他们都不能实例化
    ( 接口的具体解释接下一部分,此篇主要说的是抽象类)



抽象


从抽象类进行开始,作为切入点则更好理解,所以首先介绍为做基类而生的“抽象类”与“开房/关闭”原则

抽象类

我们平时说类的时候,都是默认的具体类,如果是抽象类一定会特地的说出来。要创建抽象类,一定要加abstract指出来,未被实现的成员,也要用abstract来修饰,而且他们不能是private。因为,一定是抽象类的子类来去实现它。

  abstract class Student//抽象类
    {
   
        abstract public void Study();//没有方法体的抽象方法
    }

不允许去实例化一个抽象类,它就剩下可以作为基类把自己派生出去,或者声明变量,利用多态。用父类的变量实现子类的实例。

开闭原则

大意是指,不是为了修bug或添加新的功能,不要去修改类的内容。


下面例子中,很好的展现了开闭原则:利用创建一个抽象类,然后派生子类,达到不改动最初的基类里的代码,仍可以添加各种新的需要。同时凸现了抽象类作为基类的作用以及运用多态实现灵活调用方法而不用去修改基类。(这里我们就不用在Vehicle这个类里添加一些方法来达到引用下面新增类里需要的方法,而是利用多态,不改变基类里的代码,也可以实现功能)这样,我增加子类,就不需要改动基类里的代码,而是直接添加子类,然后创建子类的对象实例即可。(下面有个反例)

class Program
    {
   
        static void Main(string[] args)
        {
   
            Vehicle v = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值