为了账号安全,请及时绑定邮箱和手机立即绑定

重载时,为什么byte和short变量相乘结果强制转化了,int没有呢​?

  在计算器中定义加、减、乘、除等方法
  在方法中对接收的两个数字进行运算
  并使用重载的知识根据数字类型选择相应的方法计算。
 
  */
 float counter(float a,float b){
  return(a*b);
 }
 double counter(double a,double b){
  return(a*b);
 }
 int counter(int a,int b){
  return(a*b);
 }
 long counter(long a,long b){
  return(a*b);
 }
 short counter(short a,short b){
  return (short) (a*b);
 }
 byte counter(byte a,byte b){
  return (byte) (a*b);
 }
 public static void main(String[] args){
  
 }
 }
为什么byte和short变量相乘结果强制转化了,int没有呢

正在回答

2 回答

java里面管这种叫做自动提升,小数据类型会往大的数据类型转换,但是可以人为转化回去。

2 回复 有任何疑惑可以回复我~

编译器认为byte类型和byte类型运算的结果是int型,实际上对short类型也做了相似的处理。而int及以上的数据类型不用转换。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

重载时,为什么byte和short变量相乘结果强制转化了,int没有呢​?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信