社区
C#
帖子详情
真心求指教,抽象类和接口到底有什么用呢?
coffee_sugar
2012-04-27 10:42:47
为什么非要去定义这些东西啊?与其继承了这些东西然后再去实现他们,为什么不直接去实现这些想要的方法呢?
小白求大家指教啊~~~~
...全文
3474
66
打赏
收藏
真心求指教,抽象类和接口到底有什么用呢?
为什么非要去定义这些东西啊?与其继承了这些东西然后再去实现他们,为什么不直接去实现这些想要的方法呢? 小白求大家指教啊~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
66 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yujie_v
2012-05-08
打赏
举报
回复
一些概念的技巧和设计理念
hulp
2012-05-06
打赏
举报
回复
[Quote=引用 58 楼 的回复:]
应用和业务不复杂。你理解不了的。
[/Quote]
说道点子上了
ceofit
2012-05-05
打赏
举报
回复
你知道了继承,还不知道多态,理解一下多态就知道有什么好处了。
yzg100
2012-05-04
打赏
举报
回复
大话设计模式这本书推荐你看看。
zhouyang209117
2012-05-03
打赏
举报
回复
用不到就先不用管它。
炙
2012-05-03
打赏
举报
回复
抽象类和接口都是为了代码的可扩展可维护。设计模式中有一个原则是开放封闭原则也提倡使用抽象。
z808089
2012-05-03
打赏
举报
回复
http://book.360buy.com/10064461.html
推荐你看看这本书。你会有所理解!
z808089
2012-05-03
打赏
举报
回复
应用和业务不复杂。你理解不了的。
饭饭000
2012-05-02
打赏
举报
回复
插座在定义的时候不是已经接电了吗,为什么使用的时候还要接电一次
[Quote=引用 9 楼 的回复:]
接口可以理解为标准
比如说 我们的插座 市面上所有的电器不是两孔就是三孔 不可能来个一孔或者四孔 这就是为了和插座兼容 这样子插座才可以给你供电 这里可以理解为外部针对接口的调用 但是具体这个电给你了你怎么用 那就是电器自身的事情 这里你就可以理解为实现了接口的类
用代码表示就是
C# code
public interface IChaKong//插孔接口
{
void En……
[/Quote]
SilveryBullet
2012-05-02
打赏
举报
回复
[Quote=引用 13 楼 的回复:]
楼上很多人说了半天一会儿让lz看这个,一会儿让lz领悟那个,估计lz晕了。
其实没有那么高深,几句话就能说清楚。
问lz几个问题
(1)如果我写一个代码交给lz维护,你是愿意在我的代码中改来改去呢,还是直接再按照一定规则编写一段代码来扩展呢?
(2)如果lz是一个框架库的编写者(这听上去有点高级),你的用户不再是最终用户,而是一些初级程序员,你如何让他们觉得你的框架库好用。比如你的……
[/Quote]
内容质朴,不骄不躁,很喜欢这种回复风格~
coffee_sugar
2012-05-02
打赏
举报
回复
[Quote=引用 53 楼 的回复:]
其实他们主要还是在多态中使用
抽相是一类事物相同的部分,通用、稳定
你不要被继承这两个字的字面意思给误导了。继承其实大部门时候并不是去继承父类的具体功能。面向对象中不是常说“子类是一个父类“,其实只要知道子类是一个父类就行了,至与子类的功能,从某些角度来说,并不重要。
最完美的状态,父类最好是抽相类,而不是具体实现类
面向对象中不是有某些编程原则吗? 如 针对接口编程,依赖抽……
[/Quote]
谢大神帮助~
没想到会有这么多人回复所以早早的结贴了
“面向对象需要实现的是,代码可维护、可扩展、可复用、灵活性。”
这句话我以前确实没有考虑过- -
挨踢直男
2012-05-02
打赏
举报
回复
其实他们主要还是在多态中使用
抽相是一类事物相同的部分,通用、稳定
你不要被继承这两个字的字面意思给误导了。继承其实大部门时候并不是去继承父类的具体功能。面向对象中不是常说“子类是一个父类“,其实只要知道子类是一个父类就行了,至与子类的功能,从某些角度来说,并不重要。
最完美的状态,父类最好是抽相类,而不是具体实现类
面向对象中不是有某些编程原则吗? 如 针对接口编程,依赖抽相不依赖具体类等。
其实面向对象要达到的目的并不是说实现如何如何的功能,要实现如何如何的功能,面向过程程序设计也可以实现
面向对象需要实现的是,代码可维护、可扩展、可复用、灵活性。而要实现这几点,接口、抽相是必须的。你可以找些书系统的学一下,如设计模式、重构等
intel286
2012-05-01
打赏
举报
回复
本人理解goto = jmp
yufei_yuxuan
2012-05-01
打赏
举报
回复
看的再多,听的再多,解释的再多,意义不大,因为这样是不会真的明白他的用途的,根据我的经验,我建议去弄一些优秀的代码读,几十万的代码量总是要有的,然后有点感觉了,就仿着写,然后用接口就成了习惯了,感觉设计模式,看很容易,真的要运用是很难的,估计也不是看一遍就能明白接口是做什么的,而且设计模式也不是为什么接口而存在的
xiaotanyu13
2012-04-30
打赏
举报
回复
等你编多了 就会有 耦合和内聚的概念 等你写的项目变大的时候 你就会发现这些问题,
mrxindong
2012-04-30
打赏
举报
回复
看贴一遍,学到经验。
看帖回复,早日醒悟。
溪源More
2012-04-29
打赏
举报
回复
接口就是一种契约,凡是实现了这种契约的对象均将具备接口的特性。
抽象类,则是为了方便开发,而额外定义的非接口对象,这种对象可以视为一个父类,如果一个子类需要调用的方法恰好包含在父类中,只需从父类进行派生,就自动具备了这些方法。
五大人
2012-04-29
打赏
举报
回复
小白看帖学经验、、
TianMaiCheng
2012-04-28
打赏
举报
回复
这么多人一个好一点,形象一点的合理的解释都没有!!!
楼主,接口,这个 概念其实是为了标准,
不知道你做过网页没有……
像<html>,<a></a>这样的标签,每个浏览器都要支持它,你要问为什么要支持它,因为好多程序员都要调用它!!
很多程序员都被灌输这样的概念,比如说看到<a href='www.baidu.com'>百度</a> 就知道这是一个链接到百度的超链!!还比如说:JS函数 document.getElementById("myid");这句话;浏览器的制造厂商要让程序员调用它的时候会产生“得到ID为‘myid’的标签的值”的这种效果!!具体它是怎么实现的,我们不知道!!我们调用的时候,只管它产生的后果!!!
那些浏览器厂商,像微软,谷歌,苹果,还有像什么搜狗,腾讯的都要让“程序员”在调用这些“接口”的同时都要产生一致的效果!!!这就是接口的作用!!!
其实吧!!像C# 的语吧吧!!你为啥要这样子写呢!!因为这是个标准!!你要是写错了,编译器就不认识你!!
可能你一直用一些像VS,esclipse这样的智能工具,所以你就漠视了这些概念!!
说白了!!接口是啥,接口就是:能让别人调用,并会产生一致性效果的东西!!!像C#,Java里的那些关键字,系统函数啥的都可以称为“接口”!!
接口只是为了一致性的东西!!!
你不要认为它很神性!!
它就是抽象出的一种概念而己!!!
广州接入
2012-04-28
打赏
举报
回复
抽象类和接口其实都是必要的,他们的应用场景不同,抽象类的作用一是规范
同类调用接口
,二是代码复用,而接口的作用是规范不同类之间的调用接口(虽然抽象类允许多继承的情况下,也可以起到类似作用,但抽象类也是类,是具有分类学意义的,而且由于有代码,因此抽象类会重很多,而且逻辑过于复杂),接口没有分类学的意义,所以也没有代码复用的职责(接口虽然一样,但实现可以千差万别).也正因为接口没有代码实现(因为实现代码都在实现接口的类上面),所以会轻很多,而且在多接口实现逻辑上也非常简单,不用考虑复杂的层次调用逻辑.虽然接口可以退化成一类对象的规范,跟没有实现代码抽象类作用一样,但这也只是一种非常特殊的情况,除此之外,抽象类和接口的应用范畴是有很大区别的.所以需要分清各自的应用场景和目的,接口泛滥和抽象类泛滥都是需要避免的.
加载更多回复(43)
java8
接口
default,?Java8新特性之Lambda表达式,函数式
接口
,方法引用和default关键字...
前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin3923282...种一棵树最好的时间是十年前,其次是...开始写Java8新特性系列,怎么说呢,主要有几个新东西Lambda表达式函数式
接口
方法引用Stream流O...
机房收费系统--类图
它是最常用的UML图,可以显示出类、
接口
以及它们的静态结构和关系,它用于描述系统的结构化设计。 类图通常包括:类,
接口
,协作,关系。 类:如图所示。如果类名为斜体,表示类为
抽象类
;如果方法为斜体,...
【C#】OOP之继承那点事
前言: 继承这点事,说多不多,说少不少,这里只描述了一些我认为的基础篇,望各位大神
指教
。本节参照了C#高级编程和Think in java对继承的描述,我个人认为...
抽象类
类继承的坏处 执行循序 不可继承的类 ...
C#基础概念二十五问
当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了。这两天又全面的看了一下相关的基础知识(学而时习之嘛),总结了25个问题: 1.静态成员和非静态成员的区别?2.const 和 static readonly 区.....
回调函数
现在自学安卓三个月了,之前很长一段时间纠结于什么是回调函数、回调机制弄的一脸懵,于是今天为了彻底弄明白怎么回事,也下了点小功夫,同时也希望看过我这篇文章的,可以明白的更透彻一些,牛群们请绕行请轻拍... ...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章