Java系列文章目录
文章目录
一、前言
- 向上转型与向下转型笔记
二、学习内容:
- 向上转型与向下转型
三、问题描述
- 对转型的理解有点混乱
四、解决方案:
4.1 示例代码
- 狗与猫是动物的子类,共有的方法是eat()
4.2 引入转型
- 向上转型
不管以后传进方法里的是猫还是狗还是其他动物
他们的eat方法都是自己的
- 子类对象可以被视为父类对象,这样可以利用父类的方法。
- 不会丢失子类的特性,但只能调用父类的方法。
- 向下转型
类型转回去
- 必须确保父类对象实际上是子类对象,否则会抛出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支持多态,使得相同的方法调用可以有不同的实现,提高代码灵活性。
- 代码重用: 向上转型和向下转型使得代码能够在不同层次上复用,减少重复代码。
- 增强可维护性: 通过使用父类引用操作子类对象,可以降低系统复杂性,增强可维护性。
(后续有遇到问题再添加)
声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。
标签:sound,Java,子类,转型,Dog,Animal,向下,父类 From: https://blog.csdn.net/m0_66070037/article/details/141097576