问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中的抽象类有什么好处?90

发布网友 发布时间:2023-10-08 18:09

我来回答

4个回答

热心网友 时间:2024-10-29 02:24

我觉得johnny_8379讲得比较深入,但是只讲了一半,或者只讲了这么做有什么好处,但没讲为什么会有这种好处.这样让人看起来更加感到迷惑.
之所以楼主没有感觉到抽象类的好处,还是因为他所写的或接触到的程序大多都是代码实现起来比较简单,业务逻辑这块不需要太复杂的操作就能实现.所以写在一个界面里面也感觉不到效率和结构上有什么问题.
单纯这样讲抽象类或接口有什么好处可能理解起来比较抽象,感觉不到实际的用途.最好是找一个比较典型的例子给你讲讲.这样理解起来会更加深刻一些.

热心网友 时间:2024-10-29 02:24

抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。
以上是它们本身的异同,下面再来从实际应用讲讲它们的异同!
不同之处:
1、定义
抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
1、用法
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。
2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
有鉴于此,在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰

热心网友 时间:2024-10-29 02:25

用抽象类不是好不好而是要不要用的问题。如果你类中一个只有声明没有实现的方法,那么这个类就必须声明为抽象类。比如你有个交通工具类,它有个移动的方法。你不可能写出这个方法的实现,因为不同的交通工具的移动方式是不同的。只有在它的派生类,如SUV汽车,喷气飞机,帆船中才能写它的具体实现。
但反过来如果你想让所有交通工具移动是可以的,把他们放到数组里面,都调用作为交通工具的移动方法就行了。

热心网友 时间:2024-10-29 02:25

如果说的太深入相信你也懂不了!

简单一点:
我们大家都知道三层架构对吧,这是一个最普遍的形式,当然也可以更多层!
以三层架构为例,它分为:数据层,业务逻辑层,界面层。
从字面意义我们就可以看出他们分别是干什么用的。那么我们用什么来联系层与层之间的关系呢?
当然是:接口,或者抽象类。

为什么要用接口或者抽象类,而不用其它的呢?

我们很多初学者在写代码的时候一定都有这样的经历:在我们的界面里,直接把我们很多数据处理、判断逻辑,公共方法都写在里面,这样,让我们界面层的后台代码看起来特别的繁多。造成的后果是:假如界面很多的时候,我们会多写很多重复代码,这样我们的代码就缺乏重用性,但是最重要是这样写出来的程序非常不好维护。假如一个地方出现了问题那么整个程序都将不能使用!

假如我们使用了接口或者是抽象类,那么这方面的问题就迎刃而解了。

总结一下:接口和抽象类普通的作用是代码重用!扩展一下,方面我们修改代码,维护系统!

不懂可以继续问
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求抛物线y×y-6x=0的焦点坐标和准线方程 6-6x=6的解是x=0 .( ) 判断题 财富 一个方程问题:6x=0有没有解 6x=0,x=( ) 下列算式是方程的是( )A.101-1=100B.8x-2C.6x=0D.x-17 6X=0,这个方程没有解 对吗? 6x=0不是方程.××.(判断对错) 6x=0是方程. __ (判断对错) 今晚地球停电一小时,做点什么好呢 月经第八天还有褐色分泌物预防什么病 李白月下独酌中的名句64 被永久封了,之后开了个新的,在和平精英里,那怎样... C#中抽象类可以被继承吗?7 李白《月下独酌》全诗?66 我歌月徘徊的下一句是什么2 李白的《月下独酌》中有一句是“我歌月裴回”,还是“ 我歌月徘徊下一句是什么5 “我歌月徘徊”,下句是什么?86 八个字的唯美句子7355 李白《月下独酌》中“我歌月徘徊”的下句376 四个字刻字短句有哪些?212 四个字的唯美意境词语4861 关于爱情、幸福的四个字成语或词语561 形容爱情的唯美句子五个字四句话345 airpod连接后还是外放 银行卡锁住了绑定卡的微信可以支付吗?2 夫妻双方为广州市户口,若男方买了生育保险,女方为无业人员,政... 广州生育险如何规定二胎生育津贴和营养费 微信的支付密码被锁定后重新绑定一张银行卡可以立即使用支付功能... 二胎享受广州社保的生育保险2 和平精英原本有一个QQ帐号,再次登录这个帐号时却登录的是一个...3 C#中的 抽象类的作用是?什么时候用抽象类?94 C#抽象类和普通类有什么区别?3 被封了,注册了一个新的账号原登陆的和平精英账号会... 和平精英手机用微信登两个号时,我想第二个扫码登录怎么操...2 c#中的抽象类和类有什么异同1 护理学中对“护理”概念理解正确的是( )。 C# 虚方法 抽象类一般用于什么情况?7 C#中使用抽象类会不会影响效率1 我想问一下C#接口和抽象类的具体用处3 华为nova4的通话录音显示未找到可处理此操作的应用怎么办57 华为nova6怎么没有未接已接通话记录和已存的号码怎么不见了...14 华为nova2s语音信箱的通话记录界面显示无法连接到服务器? 华为nova6手机通话记录为什么无故消除? 华为nova6QQ电话手机没电了开机之后都不显示通话记录? 西瓜kune 和西瓜jun有什么关系620 西瓜JUN和西瓜KUNE是什么关系?19 西瓜kune 和西瓜Jun是亲兄弟?399 西瓜kune和西瓜jun是一个人吗1002 b站里西瓜jun和西瓜kune真的是兄弟吗?1