您的位置:首页 > 编程语言 > Java开发

java 中对于接口的理解和我对java 的一些理解

2013-09-25 11:36 218 查看
转载自http://bbs.csdn.net/topics/390186915?page=1#post-395642160

问题:“请问java的接口除了在设计模式中运用外还有什么其他的功能?例如我在一个类中实现一个接口比不是为了运用代理也不是为了代码的重构,那还为什么要实现接口。还有API中定义的接口又有何种作用,接口是空方法体,为什么还能预先定义功能,我不覆盖的话功能不就不能实现了吗?望各位给我这个菜鸟解答解答”

回答:“--我在一个类中实现一个接口比不是为了运用代理也不是为了代码的重构,那还为什么要实现接口。

Java不支持多继承,但你可以用一个类实现多个接口,同时继承一个类。这个是接口区别于抽象类的很大有点。

另外“运用代理也”以及“代码的重构”都是某种行为而不是它们的目的,目的是为了实现如USB电子设备那样的“大家既有某种共性,又有各自的特性”这样的结构。需要共性的时候,就用接口对象去承载任何的实现类。需要个性的时候就让他们还原成各自的类。

--还有API中定义的接口又有何种作用,

想想定义USB这种接口有什么作用? 从用户看来就是兼容性更好了,一个同样的接口可以用很多不同设备;从程序员来说就是程序更规范化了。先定义基本功能的抽象(共性),后面的实现类实现具体功能(个性),但都要符合基本功能的要求。

--接口是空方法体,为什么还能预先定义功能,

“为什么还能预先定义功能”

这个“功能”二字有些歧义。

若指的是整个接口的“功能”,是对的,也就是所有实现类都得至少实现这些定义好的方法。

若指的是接口里方法的“功能”,严格上说你没有预先定义功能,而只是预先定义了功能的抽象。定义功能=实现方法,是你写在实现类里的功能的实现。

--我不覆盖的话功能不就不能实现了吗?

是这样的。除非你这个方法就是什么都不做的。

实际应用中也可以用抽象类,但感觉接口比抽象类最大的优点,一个是如前所说的支持多实现,一个是接口就是完全的抽象,而抽象类可以作弊,里面的方法可以不抽象。”

今天有人问我mvc 模式的理解,最开始接触mvc 就是javaBean+jsp+servlet的例子

那么mvc 是什么呢,mvc model-view-coxxxxx(模型图像控制)其实最开始的例子就已经很形象化了,他代表的是我们项目开发中的层级架构 javaBean 就是model层所有javaBean 都可以放在这一层, view 就是视图层 coxxxx控制层也就是service层 这就是mvc的模式。

突然想到了面向对象和面向过程如何区分清他们呢?光看定义太抽象,那么举一个例子吧, 比如需求是从北京去上海。 那么面向过程就是 开始就定义了你必须先从北京到大连,再从大连到上海,不能变,车票都订好了。

面向对象就是你自己拿着百度地图,想怎么走就怎么走,最终到达上海。

这只是我自己的理解,工作经验不多,对一些理解可能有错误的地方,希望大家多探讨交流指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: