java中强转改变了什么?改变的是对象还是引用?

如题所述

改变的是引用。如果强制转换的是基本类型,那改变的是数据本身;如果是对象,那么就是引用。可以看下面的例子:public class Test extends TT{public void f(){System.out.println("f()");}public static void main(String[] args){Test test=new Test();TT tt=(TT)test;tt.f(); //这句编译通不过test.f();}}class TT{}在这个例子中:类Test继承自类TT, 在主方法中,创建了一个Test类(子类)的对象,使引用test指向它,同时定义一个父类引用:tt,使其也指向这个对象(用强制转换),也就是说,这2个引用都指向同一个对象,可以看到,父类引用不能调用对象的f()方法。是不是对象也改变了呢?没有,可以看到引用test调用方法f()时是正确的,所以,强制转换的是引用而非对象。
温馨提示:内容为网友见解,仅供参考
无其他回答

java中强转改变了什么?改变的是对象还是引用?
改变的是引用。如果强制转换的是基本类型,那改变的是数据本身;如果是对象,那么就是引用。可以看下面的例子:public class Test extends TT{public void f(){System.out.println("f()");}public static void main(String[] args){Test test=new Test();TT tt=(TT)test;tt.f(); \/\/这句编...

Java中的强制类型转换是如何转换的?
java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量 = (目标数据类型) 数据;”。下面给出例子:1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值...

java引用类型强制转换, 类型是什么意思,转换的是什么,有什么作用?
如果A是父类,B继承于A,有一个对象B b,(A)b就叫强制转换,把b的引用类型转换成A,就可以把b当A实例化的对象使用

谁能给我讲讲JAVA中的强制造型啊?最好以代码形式讲下,加下注释,谢谢喔...
分为两种:一种是基础数据类型的强制转型,另一种是引用类型的转型。 基础数据的转型:表数范围小的自动向表数范围大的转型,也叫做向上转型。表数范围大的向表数范围小的转型则需要强制类型转换。例:1、java中的整数默认为int类型。但是我们可以这样写: double a = 10; \/\/自动向上转型, ...

java中的强制类型转换
String 就是直接强制转化成String型的字符串,且有优先级限制,像int i=123;不能String s=(String)i。而String.valueOf()里面的参数转换可以是double、long、char[] 、long等等,没限制,所以String s=String.valueOf(i)。toString()方法返回的是这个对象的字符串表示,就像是这个对象的名字一样,...

java数据类型强制转换?
就是父类的对象指向子类的引用 ,你调用a对象 ,实际上是B的类 ,但是B继承A ,拥有A的一切属性和方法 (不谈复写)\/ol第二种是向下转型 ,也就是强制这种需要强转 ,比如long a = 10 ;int b = (int)a;通过 (int)可以强制转型 ,但是这样会丢失精度 ,比如a如果超过了b的范围 ,那么强转成int型...

java父类对象给子类对象赋值强制转换后子类对象的属性是怎么一回事
代码要写在代码块、方法里面。class c{ public static void main(String args[]){ a a1, a2=new a();b b1.b2=new b();b1=(b)a2;System.out.println(b1.b);} } 但还不能用的,因为 b1=(b)a2; \/\/\/ a2本来是a的实例,转换失败。

Java中创建一个子类对象,强制把它转换成父类定义为一个新的父类对象...
算,不是强制,而知这种转化肯定成功。当把子类对象赋给父类引用对象时,被称为向上转型,这种转型总是可以成功的,这也从另一个侧面证实了子类是一种特殊的父类。这种转型只是表明这个引用变量编译时类型是父类,但实际执行它的方法时,依然表现出子类对象的行为方式。

在java中的强制转换和自动转换中,什么是目标类型,什么是源类型?
而:double a = 1.0;int b = (int) a; 这里是强制类型转换,因为不可能把一桶水塞进一个杯子里面,所以要强制类型转换。这里a是源类型 b是目标类型。一些简单的例子:float = 1.0; 编译错误,因为1.0是double类型的,所以要强制类型转换 short s = 1;s = s + 1; 编译错误...

java 子类强制转换为父类,父类强制转换为子类调用问题
强制转换子类的情况 是使用父类的引用 引用了子类对象的实例 这个对象是实例的实例而不是父类的实例 这个时候才能用强制转换 否则不可以 就那那个例子 如果让你转换了的话调用mb_vb()方法的时候会发生什么?? 父类的实例根本就没有那个方法 还有你讨论的这个完全没有任何意义......

相似回答