一、先说说数据类型之间的转换
1、自动类型提升(也叫隐式类型转换,向上转型):只有类型一致的才可做运算,类型不同,内存就不同,那么Java中有自动类型提升来处理类型不同的运算,但是前提都是数值。
2、强制类型转换(也叫显示类型转换,向下转型):在不同类型数值做运算的时候,运算结果由于自动类型提升的原因,用内存小的变量接收结果,但由于结果内存大于用于接收的变量内存时,可以使用强制类型转换,但是要慎用,因为用得不准确,会损失精度。
System.out.print('a'+1);这个语句输出的结果是:98,因为char和int运算结果提升为int型的。
byte b = 3; b = b + 4;这样是会报错的,损失精度,因为b+4的结果是int类型,int类型赋给byte是装不下的。
应该改成b = (byte)(b+4);//强制类型转换
二、多态里边的转型
多态:一个对象,多种形态
向上转型:比如多个类,分析之后发现具有共性,那么将共性封装成一个类被那多个类所继承,如果想访问共性数据,可以向上转型,作用就是限制对特有功能的访问。
向下转型:加入上面是需要访问共性内容,之后还要访问特有数据,那么可以向下转型。向下转型的目的就是为了使用子类中的特有数据。
个人理解,不知道对否!希望可以帮到你! |