Java 向上转型与向下转型

Java系列文章目录


一、前言

  • 向上转型与向下转型笔记

二、学习内容:

  • 向上转型与向下转型

三、问题描述

  • 对转型的理解有点混乱

四、解决方案:

4.1 示例代码

  • 狗与猫是动物的子类,共有的方法是eat()

在这里插入图片描述

在这里插入图片描述

4.2 引入转型

  1. 向上转型

不管以后传进方法里的是猫还是狗还是其他动物
他们的eat方法都是自己的

  • 子类对象可以被视为父类对象,这样可以利用父类的方法。
  • 不会丢失子类的特性,但只能调用父类的方法。

在这里插入图片描述

  1. 向下转型

类型转回去

  • 必须确保父类对象实际上是子类对象,否则会抛出ClassCastException

在这里插入图片描述

  • 可以添加判断

在这里插入图片描述

  • 同类就不会报错

在这里插入图片描述


五、总结:

5.1 学习总结:

向上转型(Upcasting)

定义: 将子类对象转换为父类类型。

特点:

  • 子类对象可以被视为父类对象,这样可以利用父类的方法。
  • 不会丢失子类的特性,但只能调用父类的方法。

示例:

class Animal {  
    void sound() {  
        System.out.println("Animal sound");  
    }  
}  

class Dog extends Animal {  
    void sound() {  
        System.out.println("Bark");  
    }  
}  

Animal animal = new Dog();  // 向上转型  
animal.sound();  // 输出 "Bark"  

向下转型(Downcasting)

定义: 将父类引用转换为子类类型。

特点:

  • 必须确保父类对象实际上是子类对象,否则会抛出ClassCastException。

示例:

Animal animal = new Dog();  // 向上转型  
Dog dog = (Dog) animal;  // 向下转型  
dog.sound();  // 输出 "Bark"  

引入转型的原因

  • 多态性: 通过向上转型,Java支持多态,使得相同的方法调用可以有不同的实现,提高代码灵活性。
  • 代码重用: 向上转型和向下转型使得代码能够在不同层次上复用,减少重复代码。
  • 增强可维护性: 通过使用父类引用操作子类对象,可以降低系统复杂性,增强可维护性。

(后续有遇到问题再添加)


声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值