Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是;((类)obj.method();做_Java_Casting - Fatal编程技术网

Java 什么是;((类)obj.method();做

Java 什么是;((类)obj.method();做,java,casting,Java,Casting,我在一份作业中看到了上面的代码,但找不到任何相关信息。有人能解释一下这是什么意思吗 obj将是类class的实例,method是该对象的方法 为什么class.obj.method是错误的 我试着搜索与类型转换相关的主题,但没有找到我想要的答案。我不知道如何研究这样的事情。欢迎提供任何有关这方面的提示 假设obj是class的一个实例(尽管我怀疑您的意思是class带有大写字母C),然后调用一个名为method()的方法 这是从一个类型调用到另一个类型,当您被迫这样做时,这是因为它是向下转换,所

我在一份作业中看到了上面的代码,但找不到任何相关信息。有人能解释一下这是什么意思吗

obj
将是类
class
的实例,
method
是该对象的方法

为什么
class.obj.method
是错误的


我试着搜索与类型转换相关的主题,但没有找到我想要的答案。我不知道如何研究这样的事情。欢迎提供任何有关这方面的提示

假设
obj
class
的一个实例(尽管我怀疑您的意思是
class
带有大写字母C),然后调用一个名为
method()的方法

这是从一个类型调用到另一个类型,当您被迫这样做时,这是因为它是向下转换,所以转换为更窄的类型。假设如下:

Base base = new Derived();
base.derivedMethod(); // compilation error: base is statically a Base
((Derived)base).derivedMethod(); // no compilation error and you are able to call a method of Derived on the object
向上转换是隐式的(派生的
已经是基本的),而向下转换必须是显式的

由于向下转换是从程序中删除强类型安全性的唯一操作(您要求类型检查器在执行转换时不要遵循类型检查),因此应尽可能避免使用它们


当然,将对象强制转换为不包含在对象层次结构树中的类型是错误的a将导致运行时错误(即a)

具体来说,它不会放置任何内容。它正在将对象强制转换为给定类型。(类)x是强制转换运算符。。。它将对象引用x强制转换为类型类(或引发强制转换异常)。操作顺序需要外部巴拉那。你确定吗?这真的是课堂而不是课堂吗?带有小写c的类是保留字:您也可以将其命名为((Hello)world).helloworld()。在这种情况下,Hello是您的类,world是它的实例,helloworld将是方法。所以他们在作业中没有使用任何保留字。有什么问题吗?是什么让你认为它错了?我不清楚“((class)obj.method()”和“class.obj.method”是用于不同的用途的。我现在知道我需要对打字有更深的理解。谢谢
Base base = new Derived();
base.derivedMethod(); // compilation error: base is statically a Base
((Derived)base).derivedMethod(); // no compilation error and you are able to call a method of Derived on the object