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 List的强制转型的理解

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

java事务学习笔记(四)--成功的案例(自己实现一个线程安全的TransactionManager)

在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的。在本篇文章中,我们将引入另外...

java虚拟机读写其它进程的数据及RandomAccessFile

1.java的Process类提供了如下3个方法用于让程序和其子进程进行通信。   InputStream getErrorStream():获取子进程的错误流。   InputStream getI...

JAVA & C++ 向上转型 区别

转载:http://www.cnblogs.com/lxw0109/p/CPP_JAVA.html package org.lxw.demo; class A { public v...

多态polymorphism,向上转型和动态方法调度有什么用?

多态有什么用?马 克 - t o - w i n:我给大家想了两个需求:1)要求程序运行起来以后,如果用户输入自行车,就执行自行车的驾驶方法。如果用户输入小轿车,就执行小轿车的驾驶方法。这是 就用到父...

java 向上转型(upcasting)和向下转型(downcasting)区别举例详解

今天下午小龙在练习instanceof用法时突然想到java的upcating 和 downcasting 好像与此有关联,于是自己写了一个相关的案例,在此与众位看到的亲们分享一下,希望能帮到正在学习...
  • kurl888
  • kurl888
  • 2014年12月10日 00:09
  • 822

java向上转型向下转型

  • 2012年09月04日 10:44
  • 19KB
  • 下载

java继承覆盖与向上转型,权限

子类可以覆盖父类的非final成员变量和重写非final方法 private私有变量和方法只能在类的内部使用,因此子类继承的同时会被隐藏,相当于不继承 protected变量,子类可以继承调用 ...

Java中的final和向上转型

package Number; import java.util.Random; class Parent{ private final void doit(){ System.out.pri...

java基础之对象的向上转型

对象的向上转型 什么是向上转型:将子类的对象赋值给父类的引用。 1、一个引用可以调用哪些变量(变量和函数),取决于这个引用的类型中变量的定义。    p这个引用是Person类型,Person类...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 向上转型有什么用,List 和ArrayList的区别
举报原因:
原因补充:

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