关于对象Casting的疑问

sfr*_*frj 5 java

在此输入图像描述

我从第一年开始帮助一位朋友准备他的Java考试.老师要求他们创建一种可以将音乐家投射到诗人的方法.

没有人知道该怎么做.在思考了一段时间之后,我得出的结论是,不可能这样做(ClassCastException),因为Musician和Poet共享一个接口的事实不足以将它们转移到另一个接口上.

我认为只有在相同的继承链中才有可能.

现在我有三个问题:

  1. 我对吗?
  2. 如果我是对的,教授希望他们做什么?我真的怀疑他会要求这样的事情.
  3. 如果我错了,你能编写可以将音乐家投入诗人的代码吗?

Kir*_*oll 2

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

你可以尝试:

 Musician musician = new Musician();
 Artist artist = musician;
 Poet poet = (Poet)artist;
Run Code Online (Sandbox Code Playgroud)

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