java 一个类实现接口 实例对象

现在有一个接口A,一个类B实现了这个接口,那么在定义B对象的时候,为什么喜欢用Aobj=newB();而不用Bobj=newB();第一种定义的方式有什么特别之处吗... 现在有一个接口A,一个类B实现了这个接口,那么在定义B对象的时候,为什么喜欢用
A obj=new B(); 而不用B obj=new B(); 第一种定义的方式有什么特别之处吗
展开
 我来答
baoer1127
推荐于2018-11-30 · TA获得超过926个赞
知道小有建树答主
回答量:939
采纳率:71%
帮助的人:330万
展开全部
这是为了实现 动态互换
因为有一天你一个类C 实现了A
你不想再使用B 了。那么你只是需要 修改一下就行 A a =new C();
而不必去到处更改B 的类型。
而且这也是Java设计原则中的一个。依赖抽象不依赖具体。
就那一个最常见的例子,你就知道了。
List list =new ArrayLIst();

List list = new LinkedList();
这就互换了啊 ArrayList 是数组。LinkedList是链表 但是 不需要更改其他的代码。
百度网友8996a7a
2012-07-04
知道答主
回答量:62
采纳率:0%
帮助的人:18.1万
展开全部
实现接口类似于继承,这样写就是所谓的多态,父类引用指向子类对象。多态跟动态绑定是很有用的。等你做大一点的项目时用起来就很方便了。如果想知道有哪些的好处的话,直接百度“多态的用处”之类的就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8齡後
2012-07-04
知道答主
回答量:45
采纳率:0%
帮助的人:19.6万
展开全部
A obj=new B();
是面向对象中多态的种用法
属于子类当父类用!

如果A是一个抽象类的话就不能new 了..
但是可以new A 的子类!
因为父类的方法子类也有!

如果B是一个抽象类的话就不能new 了
如果你想调用B的方法只有去new B的父类!
比如
C是B的子类这个时候就用到
B a= new C();

我是一个新鸟,如有错误!请各位大神帮忙挤出`谢谢!
希望我的答案对你有用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
养初厹06
2012-07-04 · TA获得超过203个赞
知道小有建树答主
回答量:784
采纳率:0%
帮助的人:410万
展开全部
这说明b是一个实现类,一般接口更加通用些,还有一个原因就是隐藏代码,你访问的都是接口的方法,不能直接看见b的实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-04
展开全部
个人觉得没什么特别的地方,这种写法主要用在面向接口编程中,在工厂模式中也有用到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式