java泛化关系代码 深入理解java泛型详解

如何定义 , 使用Java泛化函数一是,记住声明的格式
二是,理解这个格式所表达的意思
ListString list = new ArrayListString();
这个就是格式,
意思是:新建一个List,这个List里面放的全部是String
要表示这样一个语法,就是在List后面加尖括号,尖括号里面写存放东西的类型
主要就是尖括号,尖括号里面填一个类型,表示这个数据结构里面放的全部是这种类型的东西,别的类型放步进去,同样的,取出来也全不是这种类型,不可能是其他类型 。
就是这么个理解思路 。
另外,还可以从使用泛型的好处, 以及 如何定义泛型类 去更深的理解
JAVA泛化及为什么需要泛化泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数 。
比如,有一种类型为List,此时该List可以是任意类型的列表,如Integer,String等等 。
如果把List类型改为ListInteger,则此时只表示整型的列表 。
这就是所谓的将操作的数据类型指定为一个参数
那么这么做有什么好处呢?
比如原来我们有如下的程序:
List myIntList = new LinkedList();// 1
myIntList.add(new Integer(0));// 2
Integer x = (Integer) myIntList.iterator().next();// 3
在第三行中进行了强制类型转换 。这个类型转换不仅仅带来了混乱,它还可能产生一个运行时错误(run time error) , 因为程序员可能会犯错 。
程序员如何才能明确表示他们的意图,把一个list中的内容限制为一个特定的数据类型呢?这是generics背后的核心思想 。这是上面程序片断的一个泛型版本:
ListInteger myIntList = new LinkedListInteger(); // 1
myIntList.add(new Integer(0)); // 2
Integer x = myIntList.iterator().next(); // 3
注意变量myIntList的类型声明 。它指定这不是一个任意的List,而是一个Integer的List , 写作:ListInteger 。我们说List是一个带一个类型参数的泛型接口(a generic interface that takes a type parameter),本例中 , 类型参数是Integer 。我们在创建这个List对象的时候也指定了一个类型参数 。
另一个需要注意的是第3行没了类型转换 。
java中泛化是什么意思啊在面对对象编程中,泛化表示类与类之间的继承关系,接口与接口之间的继承关系 , 或类对接口的实现关系 。
代码例子:
父类 父类实例=new 子类()
建议楼主到这个网站/论坛学习~~
【java泛化关系代码 深入理解java泛型详解】谢谢
java中泛化的问题转型而已
Cat c = wc; 这时候wc这个类会向上转型成Cat类,但是这个类并没有实质性变化,只是说你访问的成员都是Cat定义的而不是WhiteCat定义的(比如在WhiteCat中多定义一个Miao()的方法,这是你是无法访问的)
Cat cat = new WhiteCat();与你说的哪一句没有很大的区别,只是说new一个白猫出来之后就直接向上转型成Cat类了,而不是赋给白猫的变量.
WhiteCat c1=(WhiteCat)cat;这句是把一个父类对象强制转换成子类,这时候有可能会出问题,比如说Cat cat = new BlackCat();你的cat是一个叫黑猫的子类,这时候转换成WhiteCat()的时候会抛出ClassCastException,当然如果你本来就是WhiteCat的话,就是把访问接口给转成子类的了,这是就可以访问我所举例的Miao()方法了
java泛化关系代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于深入理解java泛型详解、java泛化关系代码的信息别忘了在本站进行查找喔 。

    推荐阅读