3.6:Java实践使用父类引用指向子类对象!(课程共11100字,4个代码举例)

本文详细探讨了Java中的多态性、向上转型、方法重写、抽象类和接口等核心概念。通过代码举例分析,展示了如何使用父类引用指向子类对象以实现多态性,强调了在编程实践中需要注意的细节和潜在问题,如方法重写可能导致的意外行为以及向下转型可能引发的ClassCastException异常。文章旨在帮助读者深入理解这些关键概念,提高编程能力和代码质量。
摘要由CSDN通过智能技术生成

——代码举例分析(循环遍历调用它们的eat()方法) 
——代码举例分析(将父类引用转换为子类引用的过程) 
——代码举例分析(使用方法重写实现多态性的过程) 
——代码举例分析(抽象类和抽象方法实现多态性的过程) 

② 向上转型

向上转型是将子类对象赋值给父类引用的过程。当我们需要在父类引用和子类对象之间进行转换时,可以使用向上转型,以下是一个示例代码:

public class Animal {
    public void eat() {
        System.out.println("Animal is eating");
    }
}

public class Dog extends Animal {
    public void eat() {
        System.out.println("Dog is eating bone");
    }
    public void bark() {
        System.out.println("Dog is barking");
    }
}

public class Zoo {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.eat();
        // a.bark(); // 编译错误
        Dog d = (Dog) a;
        d.bark();
    }
}

在上面的代码中,我们定义了Animal和Dog两个类。在Zoo类中,我们创建了一个Dog对象,并将它赋值给Animal类型的引用a。然后,我们调用a的eat()方法,由于Dog类重写了eat()方法,因此它会调用Dog类中的eat()方法,输出"Dog is eating bone"。另外,我们尝试调用a的bark()方法,由于Animal类中没有定义bark()方法,因此编译器会报错。

课程概述(课程共11100字,4个代码举例)

🌷① 多态性

——代码举例分析(循环遍历调用它们的eat()方法) 

🥦② 向上转型

——代码举例分析(将父类引用转换为子类引用的过程) 

🍿③ 方法重写

——代码举例分析(使用方法重写实现多态性的过程) 

🎉④ 抽象类和接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兔子平安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值