Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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_Inheritance_Casting_Polymorphism - Fatal编程技术网

遗产java中的强制转换和多态性

遗产java中的强制转换和多态性,java,inheritance,casting,polymorphism,Java,Inheritance,Casting,Polymorphism,有人能给我解释一下如何实现这些类型的代码,并解释三者之间的区别吗?我正在用java编写代码。请参阅Oracle的文档: 我想尝试一下,因为我最近试着去理解这些,这是一个很好的方法来看看我是否理解了:因为如果你不能解释一些你还没有真正理解的东西: 铸造相当简单。它意味着将某种类型的值或对象转换为不同的类型。例如,通过这种方式可以将浮点值转换为整数 float y = 7.0 int x = (int) y x现在是7。 当然,您不能简单地将任何类型强制转换为任何其他类型。你应该在谷歌上搜索一些限

有人能给我解释一下如何实现这些类型的代码,并解释三者之间的区别吗?我正在用java编写代码。

请参阅Oracle的文档:


我想尝试一下,因为我最近试着去理解这些,这是一个很好的方法来看看我是否理解了:因为如果你不能解释一些你还没有真正理解的东西:

铸造相当简单。它意味着将某种类型的值或对象转换为不同的类型。例如,通过这种方式可以将浮点值转换为整数

float y = 7.0
int x = (int) y
x现在是7。 当然,您不能简单地将任何类型强制转换为任何其他类型。你应该在谷歌上搜索一些限制——我永远无法涵盖所有这些限制

多态性听起来很相似,但实际上是另一回事。据我所知,这意味着某些对象可以有多种类型。例如,您有一个扩展另一个类的类父类的任何实例也可以是派生类的类型

class Base {...} 
class Derived extends Base {...} 

Base obj1 = new Base();
Derived obj2 = new Derived();

obj1 = obj2;
在本代码段中,obj1首先是Base的一个实例,然后是派生类的一个实例,派生类是从Base派生的。这是可能的,因为派生类的实例包含一个内部对象,我不知道基类的正式名称。当您将基本实例强制转换为派生实例时,您将实际获得此内部对象


希望这有助于实现真正的多态性,即Java中没有多重继承。然而,尽管您的类需要实现接口提供的所有函数,但您可以使用接口获得良好的近似值

您还可以在类上使用委托的setter/getter模拟多重继承。这可能很复杂,但它也会给你多重继承的效果


本主题在中进行了详细讨论。

您是否尝试过研究它,或者您只是希望有人为您搜索它?本网站是关于解决问题,而不是帮助您搜索某些东西,但因为我是一个好人,这是官方的,应该可以回答您的问题。这个问题太广泛了-如果您想要教程,网上有很多。如果你有更具体的问题,可以回到这里。您可以在同一位置找到其他两种“代码类型”