新手问java。那个接口毕竟是一个类,用的时候还是用其方法,也是和正常的类一样继承然后执行,到底用接口

的好处是什么。其他正常类不一样可以吗... 的好处是什么。其他正常类不一样可以吗 展开
 我来答
天方之夜谭
2012-04-04 · TA获得超过587个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:204万
展开全部
java中接口可以多重继承,而类只能继承一个。
在C++里面支持的多重继承在这里有明显的差别,C++里的方法有明确的作用域,会被区别继承,而java里的多个接口里定义的方法如果完全相同,在被同一个子类继承后,所指向的方法会是同一个。
接口是一种规范,简单点也可以理解为方法的集合,但是接口也可以定义变量,但是接口内的变量不管如何声明都会被定义为静态变量。
使用接口的好处是可以屏蔽实现,比如在编程时想到了一些不错的解决问题的思路,但是实现起来比较复杂,可以先定义出接口,使用接口来完成高层的编程,而底层的实现则留给以后解决,这是也是面向对象的好处之一。不同的人对底层实现有不同的思路,但是如果继承的都是同一接口对于高层编程的人来说就没有区别。
或许你会问“那和抽象类的区别呢?”
一个类内部可以有很复杂的结构,而接口只是“对于一个问题而言”所需的最基本方法以及常量的集合,太过复杂的东西会影响思路,所以类的复杂度远高于接口。而且在java中类只可以单重继承,无法想接口一样多重继承。
由于接口可以多重继承,所以可以灵活的使用类的继承,甚至最好就不使用类的继承。继承的层级越多,方法的查询效率也就越低,对于执行效率而言接口是个不错的提高效率的方式。
接口的多重继承也就意味着一个类可能可以解决多个问题,而在解决问题时,类中的其他方法是解决问题所非必须的,使用时会影响阅读,而通过接口就正好可以屏蔽掉。
接口的其他好处还有很多,在高层次编程时往往希望屏蔽掉底层的实现,这样可以理想化编程,可以提出多种解决问题的思路,对于程序员而言是一种不错的方式。
营养品就选三鹿
2012-04-04 · 超过10用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:25.6万
展开全部
接口是定义一种规范,而且接口不可以实例化,里面的成员变量和方法全是公有并静态的,接口里的方法不能有实现,他的方法只能由子类去实现 。接口是用来实现面向对象特性之一多态时使用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java紧挨va
2012-04-17 · TA获得超过880个赞
知道小有建树答主
回答量:690
采纳率:50%
帮助的人:327万
展开全部
最大的好处我个人觉得有2种,
1 能实现多继承

2 只要是类都能实现接口,然后可以直接调用里面的方法.
如果Sun把接口全都定义成方法,那么你要用1个功能又要new个对象去调用,又想要第二个功能又要new对象去调用。是不是及其不方便而且浪费内存呢?

因为很多方法你可能只用一次就不用了,何必new对象去调用呢?使用了接口,就直接在类的内部重写该方法,然后用本类的对象去调用就可以了。
说的不对,请高手请勿笑!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路风逍遥
2012-04-04 · TA获得超过548个赞
知道小有建树答主
回答量:598
采纳率:0%
帮助的人:260万
展开全部
纠正楼上
接口中的方法不能是静态的
必须是抽象的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陨落红尘的仙子
2012-04-05 · TA获得超过401个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:221万
展开全部
面向对象编程中最实用的创新其实可以算是接口,现在面向接口编程已经是最常听到的说法。
在接口中声明一些未实现的方法,而实现接口的类必须重写这些方法,这就使得所有实现此接口的类,都可以调用同一个接口中声明的方法。例如:
UserDao是一个用JDBC来进行数据库操作的类,但我现在不确定或者不能保证我所使用的数据库不改变,比如我现在使用的是oracle,但以后可能会使用mysql或者sql server,这样就会导致换一种数据库之后,UserDao里面的代码会改变,你要重新写代码,重新编译整个程序,但这样不符合我们强调的维护时,尽量只增加而不修改代码(修改代码可能导致其他地方代码变化,引起新的问题)。
但如果此时UserDao是一个接口,我在里面定义的JDBC的未实现方法,用其他类去实现这个接口:
UserDaoJDBCOracleImpl(UserDao的oracle实现类),使用oracle方式实现所有接口方法,可以正常使用。
我现在要换mysql数据库,只要再定义一个UserDaoJDBCMySqlImpl(UserDao的mysql实现类),就可以不对以前的代码做任何修改,只要给声明的UserDao userDao 不同的实现类就可以很方便地在两种数据库之间切换(一般通过配置文件指定不同的UserDao实现类,这样完全不用修改代码)。
当然,我说的这些你现在可能还不太理解,总之一句话,接口就是为了业务变更,降低耦合,强制实现类实现其所有方法的类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式