【问题标题】:Inheritance. casting and polymorphism in java [closed]遗产。 java中的强制转换和多态[关闭]
【发布时间】:2013-08-09 19:37:51
【问题描述】:

有人可以向我解释如何实现这些类型的代码并解释这三者之间的区别是什么?我正在用 java 编码。

【问题讨论】:

  • 您是否尝试过调查,或者您只是希望有人为您搜索一下?
  • 这个网站是关于解决问题的,不是帮你google的,但是因为我是个好人,这里是官方的tutorial on inheritence,应该可以回答你的问题。
  • 这个问题太宽泛了——如果你想要教程,网上有很多。如果您有更具体的问题,可以回到这里。
  • en.wikipedia.org/wiki/Polymorphism_%28computer_science%29 您可以在同一个地方找到其他两种“代码类型”

标签: java inheritance casting polymorphism


【解决方案1】:
【解决方案2】:

我打算试一试,因为我最近试图理解这些,这是查看我是否理解的好方法:) 因为如果你不能解释一些事情,你就没有真正理解它:)

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

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;

在这个 sn-p 的过程中,obj1 首先是 Base 的一个实例,然后它将是 Derived 的一个实例,它是从 base 派生的类。这是可能的,因为派生类的实例包含基类的“内部对象”(我不知道正式名称)。当您将 Base 实例转换为 Derived 实例时,您实际上会得到这个“内部对象”

希望对你有帮助

【讨论】:

    【解决方案3】:

    真正的多态性(即多重继承)在 Java 中不可用。但是,您可以使用“接口”获得一个很好的近似值,尽管您的类需要实现接口提供的所有功能 (link to Java Interfaces)。

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

    this Stack Overflow post 详细讨论了该主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多