欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Java 向上转型与向下转型

Java 向上转型与向下转型

2024/10/23 19:09:57 来源:https://blog.csdn.net/m0_66070037/article/details/141097576  浏览:    关键词:Java 向上转型与向下转型

Java系列文章目录


文章目录

  • Java系列文章目录
  • 一、前言
  • 二、学习内容:
  • 三、问题描述
  • 四、解决方案:
    • 4.1 示例代码
    • 4.2 引入转型
  • 五、总结:
    • 5.1 学习总结:

一、前言

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

二、学习内容:

  • 向上转型与向下转型

三、问题描述

  • 对转型的理解有点混乱

四、解决方案:

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

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


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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com