当前位置: 首页 > 知识库问答 >
问题:

java中的类转换

丁立果
2023-03-14
public class OverRiding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //Super class reference to sub class Object
        Dog dog = new Animal();
        dog.eat();
        dog.bow();

        //Completely converted into pure Dog class Object
        Dog d = (Dog) dog;
        d.eat();
        d.bow();
    }
}
class Dog {
    public void eat() {
        System.out.println("Dog eat Biscuits");
    }

    public void bow() {
        System.out.println("Dog bow");
    }
}
class Animal extends Dog {
    public void eat() {
        System.out.println("Animal eat Food");
    }
}
Animal eat Food
Dog bow
Animal eat Food
Dog bow

共有1个答案

韩彦君
2023-03-14

你的概念不正确兄弟...

 class Animal extends Dog

动物怎么能延伸到狗?.这就像在说--“每一种动物都是狗”。这是错误的...所以,应该是相反的...

这个例子只会让你更加困惑…

 类似资料:
  • 我正在努力理解在这段代码中创建的C()对象。 我理解,当它在第3行创建时,它是一个对象,具有A类中的引用。我还了解到,您可以从B类中的引用中引用第4行的相同对象。但是我不明白第4行参考o1的施法。这改变了对象还是仅仅改变了它被引用的方式? 我真的很感激你的解释:)谢谢

  • 问题内容: 我对接口和类实现接口有疑问。 这是我的代码: 我想创建一个这样的实例: 可以,但是如何从接口实例中调用?这是安全的吗? 感谢帮助。 问题答案: 是的,就可以了(如果你改变的声明来实现),并作为参考真的很安全,只要 不 参考的实例。 但是,这通常是个坏主意。使用接口的全部目的是能够与 任何 实现一起使用- 它是将抽象与实现分开。如果你然后将需要一个具体的实现,你还不如让的类型正好与开始。

  • 问题内容: 有人可以启发我为什么我没有得到这个片段吗?我对为什么它不能按我预期的那样非常感兴趣。我现在不在乎这是否是不好的设计。 这是Java版本,编译和运行输出: 问题答案: 类型擦除:泛型仅是一种语法功能,编译器将其删除(出于兼容性原因),并 在需要时 用强制转换代替。 在运行时,该方法不知道类型(这就是为什么无法实例化的原因)。的调用实际上是的调用。之所以被转换为,是因为无边界类型的擦除是(

  • 在的内部类中。 演员们在这里是怎么工作的?我在这里期待,因为我们要将一个纯超类对象转换为子类。

  • 问题内容: 我对shortJava中的原始类型有疑问。我正在使用JDK 1.6。 如果我有以下情况: 编译器不想进行编译-它说它“不能从int转换为short”,并建议我进行强制转换为short,因此: 确实有效。但是我的问题是为什么我需要演员表?a和b的值在的范围内short-短值的范围是。当我想执行操作(我没有检查其他操作)时,也需要进行强制转换。 如果对原始类型执行相同的操作int,则无需将

  • 问题内容: 我对 Java中的原始类型有疑问。我正在使用JDK 1.6。 如果我有以下情况: 编译器不想进行编译-它说它“不能从int转换为short”,并建议我进行强制转换为short,因此: 确实有效。但是我的问题是为什么我需要演员表?a和b的值在的范围内short-短值的范围是{-32,768,32767}。当我想执行操作-,(我没有检查其他操作)时,还需要进行强制转换。 如果对原始类型执行