向上转型与向下转型

用父类声明子类; 称为多态;(向上转型)

用声明父类的子类数据转换成子类声明;称为向下转型;

father t = new son();

声明成功有两种方法;  数据与声明的类型一样;  数据与声明的类型构成多态;

用father类进行声明, 然后检查 new son();发现new son() 是father的子类构成多态 就可以进行正常声明;

son t = new father(); // 会报错; 因为既不相等也不构成多态;

但是

father t = new son();

System.out.prinrln((son)t); // 不会报错; 为什么;

因为 (son)t  是属于类型转换;  相当于不用管 t是一个什么类型的数据; 我只要看看son声明 是否是t的数据相同或者是否构成多态;

相当于  son 变量名 = t(new son);

也就是说我们可以做这样一部操作;

son t = new son();

(father)son // 这样也不会报错;

结论;

int a = 1;

(double) a // 此时就相当于 不管a的类型声明 只需要管转换的类型是否与数据 符合规则;

相当于  double 变量名 = 1

不要小看上面的这种思考方式;

因为你只要按照上面的这种方式就可以一眼看出是否能进行类型转换;

例如

int a = 1;

String b = (String)a; // 不能

//  因为相当于  String b = 1;   1 不能作为String 只能是 "1";

int a = 1;

char b = (char)b;  // 可以

// 因为 1可以按照字符码转换成字符

转型就是把旧的类型声明概念抛弃掉,只需要管数据与新的类型声明是否符合规则;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值