我有一些这样的代码。
超级班
public class Actual {
public int x = 123;
}
子类
public class Super extends Actual{
public int x = 999;
public int y = 12345;
}
public class Sub extends Super {
public int x = 144;
}
所以问题是我可以将超类的对象转换为子类吗?这个问题对我来说是正确的吗?
public class Mid1Prob1 {
public static void main(String[] args) {
System.out.println("Testing...");
int x = 3;
Actual actual = new Super();
System.out.println(actual.x);
Super super1 = new Super();
System.out.println(super1.x);
Actual act = new Actual();
act = new Sub();
System.out.println(act.x);
}
}
但它给Class Cast异常。
您可以将子类转换为超级类,反之亦然。如果“车辆”是“超级类”,而“汽车”是子类,则所有“汽车”(子代)都是“汽车”(“超级”),但并非所有“车辆”都是“汽车”。
我理解超类/子类之间的关系以及强制转换是如何工作的。但是,我的问题是,如果知道中间有一个类,你能把一个超类转换成一个特定的子类吗?例如,如果我有一个动物类对象包含一个BigDog对象,我可以将该对象强制转换为Dog吗?如果BigDog中有Dog中不存在的方法怎么办? 简而言之,你当然可以说超类对象是子类对象,但为什么你可以反转呢? 转念一想, Java在调用方法时检查的是:引用(DOG)是否有引用
问题内容: 我有2个类,分别称为超类和子类,我试图将子类对象转换为超类,但是当我想使用超类的子类对象时,它似乎不起作用。请帮忙解释。谢谢。这些是代码: 当我尝试使用子类的displaySub()时出现错误 问题答案: 超类不能知道子类方法。 这样考虑: 你有超一流的 你有两个子类,即:, 两个子类将具有相同的特征,例如 该超意识到这些,因为所有S能说话(即使它不知道此操作的确切机制) 一但可以做的
问题内容: 可以说我有一个无法更改的库函数,该函数产生了类A的对象,并且我创建了一个继承自A的类B。 使用库函数生成B类对象的最直接方法是什么? 编辑-在评论中要求我提供更多详细信息,所以这里是: PyTables是一个处理python中的分层数据集的程序包。我最常使用的功能是管理部分磁盘数据的能力。它提供了一种“数组”类型,仅随扩展切片一起提供,但我需要选择任意行。Numpy提供了此功能- 您可
我是Firebase数据库的新手,我正在遵循谷歌的文档从我的数据库中检索数据。 我有这样的结构: 我的应用程序崩溃。 我不明白与谷歌文档的区别。有人能帮帮我吗?我太纠结了! 错误是:
例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。
问题内容: 我希望结果是: 汽车通话方式:红色 宝马的致电方式:颜色为黑色 汽车通话方式:颜色为黑色 但是,我得到的结果是: 汽车通话方式:红色 宝马的致电方式:颜色为黑色 宝马的致电方式:颜色为黑色 我哪里错了?以及如何使用超类中的方法在子类对象中获取数据?我可以在BMW课堂上写一个方法来做到这一点。但是,为什么强制转换不起作用?谢谢你! 好!谢谢! 我明白了为什么投射不起作用。 因此,我在BM