Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 将对象强制转换到任何接口中?_Java_Object_Interface_Casting_Classcastexception - Fatal编程技术网

Java 将对象强制转换到任何接口中?

Java 将对象强制转换到任何接口中?,java,object,interface,casting,classcastexception,Java,Object,Interface,Casting,Classcastexception,我有一个名为MyInterface的接口和一个未由MyInterface实现的类MyClass interface MyInterface { } class MyClass{ } 如果我创建了MyClass的实例,编译器允许将其转换为MyInterface。我知道它会在运行时抛出ClassCastException。但是为什么编译器允许强制转换呢?因为你告诉编译器,通过使用(MyInterface)你明确地说“我知道我在做什么,毫无疑问地强制转换”(实际上编译器发出警告)接口不像Java那

我有一个名为
MyInterface
的接口和一个未由
MyInterface
实现的类
MyClass

interface MyInterface {
}

class MyClass{
}

如果我创建了
MyClass
的实例,编译器允许将其转换为
MyInterface
。我知道它会在运行时抛出
ClassCastException
。但是为什么编译器允许强制转换呢?

因为你告诉编译器,通过使用
(MyInterface)
你明确地说“我知道我在做什么,毫无疑问地强制转换”(实际上编译器发出警告)接口不像Java那样实现类,它在规范中。