【安卓学习笔记】JAVA基础Lesson9-对象的转型
发布日期:2021-05-07 20:17:06 浏览次数:12 分类:精选文章

本文共 1332 字,大约阅读时间需要 4 分钟。

对象的转型是面向对象编程中的多态性体现。在Java中,对象的转型分为向上转型和向下转型。以下是详细的解释和示例:

1. 向上转型

向上转型是指将子类对象赋值给父类引用。这种转型在Java中是自动进行的,因为子类是父类的扩展,父类引用可以存储子类对象。

示例代码:

class Father {    String str;    int num;    void Function() {        System.out.println("Father's Function");    }}class Son extends Father {    char ch;    void Fun_son() {        System.out.println("Son's Fun_son");    }    void Function() {        super.Function();        System.out.println("Son's Function");    }}class Test {    public static void main(String[] args) {        Son a = new Son();        Father b = a; // 向上转型,b引用指向Son对象        b.str = "abc";        b.num = 123;        b.Function(); // 调用Son类的Function方法    }}

解释:

  • Son a = new Son(); 创建一个Son对象a。
  • Father b = a; 将a赋值给Father类型的引用b,实现了向上转型。
  • b.str = "abc"; 由于b是Father引用,可以直接访问Son对象a的str成员变量。
  • b.Function(); 调用的是Son类的Function方法,因为b引用指向的是Son对象。

2. 向下转型

向下转型是指将父类对象赋值给子类引用,需要使用强制转换操作,否则会导致编译错误。在运行时,必须确保父类对象实际上是子类类型,否则会抛出ClassCastException。

示例代码:

class Test {    public static void main(String[] args) {        Father A = new Father(); // 创建一个Father对象        Son B = (Son) A; // 向下转型,B引用指向Father对象        B.Fun_son(); // 调用Father的Fun_son方法,无法访问Son特有的成员变量    }}

注意事项:

  • 向下转型必须确保父类对象实际上是子类类型,否则会抛出ClassCastException。
  • 使用强制转换时,通常会带有风险,需谨慎处理。

总结

  • 向上转型:自动发生,将子类对象赋值给父类引用,适用于通用场景。
  • 向下转型:强制转换,用于访问子类特有的成员,需确保类型安全。

通过这些示例,可以更好地理解Java中的多态性以及引用类型的转换机制。

上一篇:【单片机笔记】Altium Designer如何生成Gerber文件
下一篇:【安卓学习笔记】JAVA基础Lesson8-函数的复写与super用法

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月30日 19时31分28秒