JAVA 向上转型有什么用,List 和ArrayList的区别

原创 2015年07月06日 22:56:38
 List<String> lists = new ArrayList(); ArrayList<String> lists = new ArrayList(); 
到底有什么区别?这是上转型。
上转型对象不是父类创建的对象,而是子类对象的“简化”状态,它不关心子类新增的功能,只关心子类继承和重写的功能。
当一个类有很多子类时,并且这些子类都重写了父类中的某个方法。
当使用上转型对象在调用这个方法时就可能具有多种形态。因为不同的子类在重写父类的方法时可能产生不同的行为。也就是说,不同对象的上转型对象调用同一方法可能产生不同的行为。

例如下面的程序你测试一下就可以理解这样的用法。以下的程序输出为
Wang!Wang!......
miao~~miao~~...
package com.vince.testJava;

class Animal {
	void cry() {
	}
}

class Dog extends Animal {
	void cry() {
		System.out.println("Wang!Wang!......");
	}
}

class Cat extends Animal {
	void cry() {
		System.out.println("miao~~miao~~...");
	}
}

public class Test01 {
	public static void main(String args[]) {
		Animal animal;
		animal = new Dog(); // animal是Dog对象的上转型对象
		animal.cry();
		animal = new Cat(); // animal是Cat对象的上转型对象
		animal.cry();
	}
}


java ArrayList 使用心得与总结

在用 c 语言 或 C++ 时,我遇到的最大麻烦就是动态数组的内存释放了,经常容易出错。 而 java 的 ArrayList 类 很好的解决了这个问题,它类似于 C++ 中的容器类 vec...
  • robert_chen1988
  • robert_chen1988
  • 2017年06月17日 19:19
  • 514

JAVA向上转型和向下转型(一)

在我们工作的时候通常会看到这样的代码:    Map m = new HashMap();    List l = new ArrayList();    question1: m 和 l 是 对象吗...
  • xiaolong_hui
  • xiaolong_hui
  • 2017年03月04日 16:18
  • 196

关于java List的强制转型的理解

背景: 之前对于涉及到List的强制转型的理解是:      List personList = (List) list;  他会检测list中的每一项,如果其中包括非Person类或其子类的就...
  • weiweiwei256
  • weiweiwei256
  • 2016年05月18日 11:01
  • 1150

JAVA 向上转型有什么用,List 和ArrayList的区别

List lists = new ArrayList(); ArrayList lists = new ArrayList(); 到底有什么区别?这是上转型。 上转型对象不是父类创建的对象,而是子...
  • lurenjiazhw
  • lurenjiazhw
  • 2015年07月06日 22:56
  • 1108

为什么要有向上转型

子类为什么要转为父类引用?不嫌麻烦么。刚刚看了factory工厂模式后,发觉这还是必要的。 工厂会根据条件生成各种不同的类,而返回引用时不可能也返回那么多不同的子类引用,直接转成父类引用作为返回值就o...
  • jim006
  • jim006
  • 2015年07月22日 22:53
  • 214

java中的向上转型有什么妙用?

假如你在一个物流运输公司,有个客户要求你为他运输一定数量的产品到某地,使用某种交通工具.那我们假设你的管理程序中有Truck类,Train类,Plane类专门用来实现使用不同交通工具的成本计算,都有方...
  • lichaohn
  • lichaohn
  • 2010年03月10日 11:51
  • 2950

Java中List和ArrayList的区别(加入了个人见解)

转载自:http://www.cnblogs.com/aisiteru/articles/1151874.html        第一次看这篇文章时,是在CSDN博客中看到的,作者写的初衷还是蛮好的,...
  • erlian1992
  • erlian1992
  • 2016年05月02日 22:25
  • 18284

为什么list最好=new arraylist

List list = new ArrayList() 1、这是一个好的编程习惯,代码有更大的灵活性 因为List只是接口,实现List接口的不只是ArrayList,还有其他容器类,例如...
  • lingzhm
  • lingzhm
  • 2015年04月02日 10:38
  • 1952

浅谈向上转型与向下转型

向下转型可以吗?package com.ycy.rtti; import java.util.ArrayList; import java.util.List;class Pet { void...
  • u014374284
  • u014374284
  • 2015年09月07日 10:54
  • 887

java中arrayList与linkedList区别

这个问题其实好早就想做笔记了,一次面试问到了, ArrayList与linkedList在性能上各有优缺点,都有各自的地方, 1.对ArrayList和LinkedList而言,在列表中末尾添加一...
  • u014209975
  • u014209975
  • 2016年09月02日 16:09
  • 1434
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 向上转型有什么用,List 和ArrayList的区别
举报原因:
原因补充:

(最多只允许输入30个字)