JAVA强制对象类型转换的作用。看例子

classA{inta;A(inti){a=i;}}classBextendsA{inta,b;B(inti,intj){super(i);b=j;a=i+j;}}pub... class A{
int a;
A(int i){a=i;}
}
class B extends A{
int a,b;
B(int i,int j){
super(i);
b=j;
a=i+j;

}
}
public class AB {
public static void main(String args[]){
A a1=new A(9),a2;
B b=new B(3,5);
a2=a1;
a2=b;
System.out.println(b.a);
b=(B)a2;
System.out.println(b.a);
}
}
转换不转换b都是一样的,那强制对象类型转换的作用是什么呢?一般什么时候会用到?
展开
 我来答
jyf721521
2013-10-28 · TA获得超过110个赞
知道答主
回答量:216
采纳率:0%
帮助的人:68.4万
展开全部
解释隐式转换,就要区别与显式转换
显式转换是你定义让这个值类型转换成你要用的值类型,例,你定义int i=5,想把他专换成char类型,就用
显式转换(char)i;显式转换是系统跟据程序需要而自动转换的,不需要定义,但并不是所有值类型都可以互相转换,所以有了显式转换。例,int i=5; char j='a'; int n=i+j;因char可以隐式专换为int类型,所以结果n=102
追问:
谢谢,那请问隐式强制类型转换有什么作用或者意义?
举个例子说吧:
比如一个抽象几何对象类Geometric ,圆(Circle circle)和长方形(Rectangle rectangle)都是特殊类型的几何对象(extends Geometric),那么在定义一个圆类对象或者长方形类对象的时候往往是下面这种形式:
Geometric geom1=new Circle(); //隐式强制类型转换为父类对象
// Geometric geom2=new Rectangle();
而在调用的时候往往又会将这个父类对象再显式强制类型转换为子类对象,
然后在调用子类的方法,如:
Circle(geom1).findArea();// 假设圆有一个求其面积的方法 findArea()

这种隐式转换的作用是什么?不懂。。
否则 为什么不直接写成 Circle circle=new Circle();
然后直接调用: circle.findArea()

再问下:通用编程怎么理解? 难不成这就是传说中的多态性?
陈哥深惠通勤
2013-10-28 · TA获得超过1176个赞
知道小有建树答主
回答量:1909
采纳率:33%
帮助的人:840万
展开全部
java是面对对象操作的,对象都有数据类型,比如你定义了一个方法 public void test(int i){...}
使用的时候获得的 i 是一个double 类型值,这时候就要用到强制类型转换了
例如你想随机取得 0到9 这10个数字,Math.random()方法获取一个随机数是double类型的,直接(Math.random()*10)不能将double的变量赋值给 int 类型变量 i,强制转换一下
(int)(Math.random()*10)就变成 int 类型了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式