java - "Cannot cast"子类到父类(super class)

标签 java android inheritance casting

<分区>

public class MyListFragment extends ListFragment {...}

ListFragment listFragment = new MyListFragment();
ListFragment listFragment = (ListFragment) new MyListFragment();

这两行都没有编译“无法从 MyListFragment 转换为 ListFragment”。

最佳答案

您尝试执行的操作绝对有效,因此在您描述的代码之外一定存在导致问题的原因。以下代码编译。

class A {

}

class B extends A {

}

private void test() {
    B b = new B();
    A a = b;
    A a2 = (A)b;
    A a3 = new B();
    A a4 = (A)new B();
}

很可能你有一个错误的导入,两个同名的类,你从错误的包中导入了一个。

关于java - "Cannot cast"子类到父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20675737/

相关文章:

java - Android状态栏中的动画

java - 如何在 Java 中重复音频?

android - TextInputLayout.setError() 抛出异常。为什么以及如何解决?

Android 2.2 实现 Runnable Public void run() 未被调用

Python类继承: AttributeError: '[SubClass]' object has no attribute 'xxx'

Swift继承函数返回类型不能是子类型

java - 随机选择子节点后如何获取 Firebase 实时数据库中子节点的 key

android - 如何在 Android Studio 中访问 Android 引用

python - 将基类转换为派生类python(或扩展类的更多pythonic方式)

java - 将文本转换为语音java代码