接口与子类

u010121049 2013-04-01 03:54:04
父类的引用指向子类的对象
如:Collection c=new ArrayList();
这样做的深层意义是什么?
...全文
289 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
litongde_java 2013-04-04
  • 打赏
  • 举报
回复
实现多态。 如题:实际new出来的是ArrayList() 实际用拿c来用的时候只能用Collection中的方法,必须向下转型才能用Arraylist中的方法
菜鸟级高手 2013-04-03
  • 打赏
  • 举报
回复
实现多态,父类引用调用子类的方法更方便..灵活度很高
  • 打赏
  • 举报
回复
1、多态 2、灵活性更大。
livend 2013-04-02
  • 打赏
  • 举报
回复
多态,只能用基类中定义了的方法
sxnbo 2013-04-02
  • 打赏
  • 举报
回复
就是为了多态 动态绑定
lvzg_005 2013-04-02
  • 打赏
  • 举报
回复
左声明,右实现; 声明接口,new实现
ipnated 2013-04-02
  • 打赏
  • 举报
回复
若要改成Collection c=new LinkedList(); 则引用c的地方不用变
yongtaimen 2013-04-01
  • 打赏
  • 举报
回复
意义可大了,打个简单点的比方。 爸爸 王小二=new 大儿子(); 爸爸 王小二=new 小儿子(); 那我现在叫大儿子过来,王小二可以过来,我叫小儿子过来,王小二也可以过来方便吧。 在做项目的时候, 爸爸 王小二; 这步是我写的;后面 王小二=new 小儿子(); 或者new 大儿子()不一定是我写,那我怎么知道他到底要的是大儿子还是小儿子, 所有我声明他们爸爸的引用,你叫大儿子和小儿子都ok。 我要是写具体的 小儿子 王小二=new 小儿子(),不是把别人限定死了吗。 就算那两步都是你自己写,我项目做完了,我如果要修改的话,那我至少声明的那部分可以不动了吧。也就是说扩展了程序的 移植性和可维护性。 百度说的。。。
  • 打赏
  • 举报
回复
http://blog.csdn.net/gideal_wang/article/details/4913965 看下这篇文章吧,很充足了。
yongger520 2013-04-01
  • 打赏
  • 举报
回复
引用 5 楼 she383 的回复:
引用 4 楼 u010015186 的回复: 举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用? 这例子举得真烂
she383 2013-04-01
  • 打赏
  • 举报
回复
引用 4 楼 u010015186 的回复:
举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用?
这例子举得真烂
Jason-Zai 2013-04-01
  • 打赏
  • 举报
回复
举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用?
tianma630 2013-04-01
  • 打赏
  • 举报
回复
比如:Collection是ArrayList和LinkedList的借口 Collection c=new ArrayList(); (或者new LinkedList();) c.sort(); 这样你只需要修改new后面的内容 就可以实现不同的排序方法
ceclinux 2013-04-01
  • 打赏
  • 举报
回复
多态,楼主不妨看看设计模式,可以看到这种方式的灵活性
bluemoby 2013-04-01
  • 打赏
  • 举报
回复
这样可以充分利用JAVA多态的特性,可以参照依赖倒转原则的说明。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧