java 一个类实现接口 实例对象
现在有一个接口A,一个类B实现了这个接口,那么在定义B对象的时候,为什么喜欢用Aobj=newB();而不用Bobj=newB();第一种定义的方式有什么特别之处吗...
现在有一个接口A,一个类B实现了这个接口,那么在定义B对象的时候,为什么喜欢用
A obj=new B(); 而不用B obj=new B(); 第一种定义的方式有什么特别之处吗 展开
A obj=new B(); 而不用B obj=new B(); 第一种定义的方式有什么特别之处吗 展开
9个回答
展开全部
这是为了实现 动态互换
因为有一天你一个类C 实现了A
你不想再使用B 了。那么你只是需要 修改一下就行 A a =new C();
而不必去到处更改B 的类型。
而且这也是Java设计原则中的一个。依赖抽象不依赖具体。
就那一个最常见的例子,你就知道了。
List list =new ArrayLIst();
List list = new LinkedList();
这就互换了啊 ArrayList 是数组。LinkedList是链表 但是 不需要更改其他的代码。
因为有一天你一个类C 实现了A
你不想再使用B 了。那么你只是需要 修改一下就行 A a =new C();
而不必去到处更改B 的类型。
而且这也是Java设计原则中的一个。依赖抽象不依赖具体。
就那一个最常见的例子,你就知道了。
List list =new ArrayLIst();
List list = new LinkedList();
这就互换了啊 ArrayList 是数组。LinkedList是链表 但是 不需要更改其他的代码。
展开全部
实现接口类似于继承,这样写就是所谓的多态,父类引用指向子类对象。多态跟动态绑定是很有用的。等你做大一点的项目时用起来就很方便了。如果想知道有哪些的好处的话,直接百度“多态的用处”之类的就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A obj=new B();
是面向对象中多态的种用法
属于子类当父类用!
如果A是一个抽象类的话就不能new 了..
但是可以new A 的子类!
因为父类的方法子类也有!
如果B是一个抽象类的话就不能new 了
如果你想调用B的方法只有去new B的父类!
比如
C是B的子类这个时候就用到
B a= new C();
我是一个新鸟,如有错误!请各位大神帮忙挤出`谢谢!
希望我的答案对你有用!
是面向对象中多态的种用法
属于子类当父类用!
如果A是一个抽象类的话就不能new 了..
但是可以new A 的子类!
因为父类的方法子类也有!
如果B是一个抽象类的话就不能new 了
如果你想调用B的方法只有去new B的父类!
比如
C是B的子类这个时候就用到
B a= new C();
我是一个新鸟,如有错误!请各位大神帮忙挤出`谢谢!
希望我的答案对你有用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这说明b是一个实现类,一般接口更加通用些,还有一个原因就是隐藏代码,你访问的都是接口的方法,不能直接看见b的实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-04
展开全部
个人觉得没什么特别的地方,这种写法主要用在面向接口编程中,在工厂模式中也有用到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |