自动转换和强制转换
赋值时的类型转换:
自动转换和强制转换;
char c='a';
int n=c;
System.out.println(c);//小----大,系统自动转换;大---小,需要强制转换;
自动转换:
规制:
1.byte,char,short,int,long,float, OP double----->double;
2.byte,char,short,int,long OP float---->float;
3.byte,char,short,int OP long---->long;
4.byte,char,short OP int----->int;
5.byte,char,short OP byte,char,short--->int;
//OP时操作符,OP两边的是操作元类型;
强制转换:
int a=256;
byte b=(byte)a;//byte -128~127
system.out.println(b);//数据溢出;0
引用类型转换:
Animal animal=new Dog();
Dog dog=new Dog();
animal=dog;//Dog 类型赋值给Animal父类类型,自动转换;
Object object=dog;//Dog类型赋值给Object 父类类型,自动转换;
dog=(Dog)anmial;//Animal类型赋值给子类Dog,强制转换;
引用类型在赋值=的时候,左右两边的引用变量类型必须是同种类型或者有继承关系的,即位于继承树上的分支,否则会编译错误;
Dog dog=new Dog();
Cat cat=dog;//编译错误;
浙公网安备 33010602011771号