java - 关于object Casting的疑惑

标签 java

enter image description here

我正在帮助一位一年级的 friend 准备他的 Java 考试。 老师要求他们创造一种可以将音乐家塑造成诗人的方法。

没有人知道该怎么做。想了想,我得出的结论是不可能做到这一点(ClassCastException),因为 Musician 和 Poet 共享一个接口(interface)这一事实不足以将它们强制转换为另一个。

我认为这只有在它们处于同一继承链中时才有可能。

现在我有三个问题:

  1. 我说得对吗?
  2. 如果我是对的,教授希望他们做什么?我真的怀疑他会提出这样的要求。
  3. 如果我错了,你能写出可以将音乐家变成诗人的代码吗?

最佳答案

  1. 你是对的
  2. 技巧问题?
  3. 不,至少,不是没有 ClassCastException

你可以试试:

 Musician musician = new Musician();
 Artist artist = musician;
 Poet poet = (Poet)artist;

但当然,该代码实际上不会在运行时运行。

关于java - 关于object Casting的疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6051663/

相关文章:

java - java猜谜游戏的选择和计数验证帮助

java - 如何将 outputStream 转换为字节数组?

java - 使用扫描仪读取Java中输入的许多字符串

java - Dropwizard 迁移 Liquibase 新变更集未迁移

java - 在 linux 下使用 JAI 的文件存储保存 JPG-Image

java - 用于类别映射的高效数据结构

Java静态数组列表初始化问题

java - java在线mp3处理

java - 如何制定 Hibernate 标准以仅引入需要的字段

java - 虚假唤醒、wait() 和 notifyAll()