当前位置:编程学习 > JAVA >>

接口与子类

父类的引用指向子类的对象
如:Collection c=new ArrayList(); 
这样做的深层意义是什么? --------------------编程问答-------------------- 这样可以充分利用JAVA多态的特性,可以参照依赖倒转原则的说明。 --------------------编程问答-------------------- 多态,楼主不妨看看设计模式,可以看到这种方式的灵活性 --------------------编程问答-------------------- 比如:Collection是ArrayList和LinkedList的借口
Collection c=new ArrayList(); (或者new LinkedList();)
c.sort();

这样你只需要修改new后面的内容  就可以实现不同的排序方法 --------------------编程问答-------------------- 举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用? --------------------编程问答--------------------
引用 4 楼 u010015186 的回复:
举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用?

这例子举得真烂 --------------------编程问答--------------------
引用 5 楼 she383 的回复:
引用 4 楼 u010015186 的回复:
举个简单列子,一个公司要招程序员(父类),有java程序员(子类),.net程序员(子类),c++程序员(子类)。这个公司提供一个新增的方法,你是愿意单独为每种程序原单独写一个方法还是愿意只提供一个方法给所有的程序员用?
这例子举得真烂
--------------------编程问答-------------------- http://blog.csdn.net/gideal_wang/article/details/4913965

看下这篇文章吧,很充足了。 --------------------编程问答-------------------- 意义可大了,打个简单点的比方。
爸爸 王小二=new 大儿子();
爸爸 王小二=new 小儿子();
那我现在叫大儿子过来,王小二可以过来,我叫小儿子过来,王小二也可以过来方便吧。
在做项目的时候,  爸爸 王小二; 这步是我写的;后面  王小二=new 小儿子();
或者new 大儿子()不一定是我写,那我怎么知道他到底要的是大儿子还是小儿子,
所有我声明他们爸爸的引用,你叫大儿子和小儿子都ok。 
我要是写具体的 小儿子 王小二=new 小儿子(),不是把别人限定死了吗。
就算那两步都是你自己写,我项目做完了,我如果要修改的话,那我至少声明的那部分可以不动了吧。也就是说扩展了程序的 移植性和可维护性。
百度说的。。。 --------------------编程问答-------------------- 若要改成Collection c=new LinkedList(); 则引用c的地方不用变 --------------------编程问答-------------------- 左声明,右实现;
声明接口,new实现 --------------------编程问答-------------------- 就是为了多态 动态绑定 --------------------编程问答-------------------- 多态,只能用基类中定义了的方法 --------------------编程问答-------------------- 1、多态
2、灵活性更大。 --------------------编程问答-------------------- 实现多态,父类引用调用子类的方法更方便..灵活度很高 --------------------编程问答-------------------- 实现多态。
如题:实际new出来的是ArrayList()
实际用拿c来用的时候只能用Collection中的方法,必须向下转型才能用Arraylist中的方法
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,