类的转换
转换规则:
• 基本类型之间的转换 ▫ 将值从一种类型转换成另一种类型。
• 引用变量的类型转换
▫ 将引用转换为另一类型的引用,并不改变对象本身的类型。
▫ 只能被转为任何一个(直接或间接)超类的类型(向上转型);
对象所属的类(或其超类)实现的一个接口(向上转型);
被转为引用指向的对象的类型(唯一可以向下转型的情况)。
• 当一个引用被转为其超类引用后,通过他能够访问的只有在超类中 声明过的方法。
显式类型转换
• 基本数据类型
(int)871.34354; // 结果为 871
(char)65; // 结果为‘A’
(long)453; // 结果为453L
• 引用变量
Employee emp;
Manager man;
emp = new Manager();
man = (Manager)emp; //将emp显式转换为它指向的对象的类型
隐式类型转换
• 基本数据类型
可以转换的类型之间,存储容量低的自动向存储容量高的类型转换。
• 引用变量
- 被转成更一般的类,例如:
Employee emp;
emp = new Manager();
//将Manager类型的对象直接赋给Employee类的引用变量,系统会自动将Manage对象塑型为Employee类 - 被塑型为对象所属类实现的接口类型,例如:
Car jetta = new Car();
Insurable item = jetta;
强制对象类型转换:
if(car instanceof Car){
Car myCar = (Car) car;
}
[注]instanceof检查car引用变量是否指向一个Car的实例对象