社区
Java SE
帖子详情
深入探讨java的接口和抽象的内涵!
Virginer
2001-09-14 11:35:34
加精
搞来搞去还是不是真正的明白其内涵!
请给一点高的见解!
...全文
114
7
打赏
收藏
深入探讨java的接口和抽象的内涵!
搞来搞去还是不是真正的明白其内涵! 请给一点高的见解!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jasper
2001-10-01
打赏
举报
回复
对,这就是多态的概念,看上去,大家都是pig,但其实eat的细节是不同的,但使用者只要知道,它使用的东西是pig的instance就行了,而这就是封装。
接口就是规范,这点也很对,而且这一点也是oo的重大实际意义,为什么要有oo,就是为了缩短开发周期,而缩短开发周期最好的方法就是通过协作和分工,而在分工协作中,最重要的就是任务分配和交流。接口的出现,就是oo中便于分配和交流的一件自然而然的事情。打个比方,这个世界既有IBM的PC,也有联想的PC,对于用户来说,只要知道他们实现了x86这个接口就行了,就可以放心大胆的用了。这样,联想PC,IBM PC,尽管它们做工作的细节不同,但同样都是规范的PC。对于程序员来说,不管你怎样实现这个功能,只要你用的是这个方法名,别的人就可以放心大胆的用你的方法了,这样,别人就不用等你开发好了,问你“你这个方法叫什么名字,我应该什么调用?”,因为这些都已经被接口规范好了,因此,变化的是你在具体类中实现的细节,不变的是你在接口中定义的方法名和调用方法。这也就是把“不变的和变化的分离开”
Virginer
2001-09-14
打赏
举报
回复
zzhphp(): 放在一个接口中实现了启动的特性(开关),而提取这样一个特性又有什么优势呢?
况且这特性还要再一次的在每个对象中具体的实现!
zzhphp
2001-09-14
打赏
举报
回复
我谈一下本人的关点,如有不对请多指教。
接口:我认为是建立在不同对象,所要实现共同的特性。如:对象电灯、电梯、汽车。。。它们是 不同的对象,可要运行它们,都会有一个启动的特性(开关),那么这个特性我认为就可以 放在一个接口中实现。
抽象:我认为是建立在同一对象的基础之上的,要对同一类对象的同一个特性进行详细的说明或许 要用到它,因为在同一类对象中,具体到各不同的实体时,都会在相同的特性的实现上有部 分的差别,所以使用这种“抽象”来解决。
-------------------------------------------------------------------------
以上是个人关点,如有不适之处还望高手提出。
同时希望大家,多提出一些在这两方面在实用中的经验。
sharetop
2001-09-14
打赏
举报
回复
对,最根本的区别有两点:接口是纯虚的,接口可以多继承。
一般在java开发中常用的是interface而不是abstract类,因为java不提供多重继承,所以只能用接口来实现了。
其实接口与C++中的纯虚类很类似了。
pboracle
2001-09-14
打赏
举报
回复
大型项目开发之前要给每一个小组成员分配任务
所以要有一种“先定义”一个空函数
“后实现”这个函数的机制
定义由项目组长做
实现由小组成员做
这就是抽象机制的由来
而接口则是在java中实现抽象的最佳途径
还有另一种方法是构造abstract类,没有interface好,因为接口是“纯虚的”
给点分,好吗
supersonics
2001-09-14
打赏
举报
回复
interface pig{
void eat(){}
}
public class bigpig implements pig{
void eat(){
System.out.println("eat a lot");
}
}
public class littlepig implements pig{
void eat(){
System.out.println("eat little");
}
}
pig myPig ;
myPig = new littlepig(); // line x1
myPig.eat();
myPig = new bigpig(); // line x2
myPig.eat();
-----------------------------------------------
如果我把line x1和line x2交换,一点问题都没有。
如果我们在使用myPig的时候不需要知道myPig具体如何做,岂不是符合oop的思想。
zzhphp
2001-09-14
打赏
举报
回复
to Virginer(里个那个里个棱) :
我认为优势有以下点:
1. 它可以起一个规范的作用,对于不同对象之间某些特性,它的操作,可以起到规范化,这样不论谁来实现,它的接口肯定是规范化。(如:sax,dom,这些不是太深入的学过,但它们定义的接口,确是规范的。)
2. 正如 sharetop(天生不笨) 所说的,java中不支持多层继承,那只有使用这个接口了。
从零到精通:JMeter
接口
测试实战指南
深入了解HTTP请求和响应的结构,让你对
接口
测试有一个清晰的认识。我们将一起探讨HTTP报文中的各种元素,以及它们在
接口
测试中的重要性。 Fiddler工具大揭秘: Fiddler是一个强大的网络调试工具。在这里,我们...
NO.14 你所知道的
接口
,不一定是最全的 |
Java
敲黑板系列
今天我们将
深入探讨
接口
的
内涵
与注意事项。 面向对象编程.VS.面向
接口
编程,何去何从? 我们常说“
Java
是一门面向对象编程的语言”,但是我们又常把“面向
接口
编程”挂在嘴边。一个是面向对象,一个是面向
接口
,...
(转载)
Java
设计模式之代理模式
设计模式是语言的表达方式,它能让语言...代理模型除了是一种设计模式之外,它更是一种思维,所以探讨并深入理解这种模型是非常有必要的。 本文转载自
Java
的三种代理模式 浅析
JAVA
设计模式之代理模...
深入理解
Java
类加载器(一):
Java
类加载原理解析
Rico's Blogs 潜心修炼,成为一个更好的人。 ...赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+...深入理解
Java
类加载器(一):
Java
类加载原理解析 标签:
Java
类加载原理双亲委派模型启动类加载
JAVA
程序员必看的15本书-
JAVA
自学书籍推荐
作为
Java
程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平...
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章