`

java 向上转型和向下转型(转载)

    博客分类:
  • java
 
阅读更多
java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。

什么叫父类引用指向子类对象,且听我慢慢道来.

从2个名词开始说起:向上转型(upcasting) 、向下转型(downcasting).

举个例子:有2个类,Father是父类,Son类继承自Father。

Father f1 = new Son();   // 这就叫 upcasting (向上转型)

// 现在f1引用指向一个Son对象

Son s1 = (Son)f1;   // 这就叫 downcasting (向下转型)

// 现在f1还是指向Son对象

第2个例子:

Father f2 = new Father();

Son s2 = (Son)f2;       // 出错,子类引用不能指向父类对象

你或许会问,第1个例子中:Son s1 = (Son)f1;问什么 是正确的呢。

很简单因为f1指向一个子类对象,Father f1 = new Son(); 子类s1引用当然可以指向子类对象了。

而f2 被传给了一个Father对象,Father f2 = new Father();子类s1引用不能指向父类对象。

总结:

1。父类引用指向子类对象,而子类引用不能指向父类对象。

2。把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转换。

      如:Father f1 = new Son();

3。把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换。

   如:f1 就是一个指向子类对象的父类引用。把f1赋给子类引用s1即 Son s1 = (Son)f1;

           其中f1前面的(Son)必须加上,进行强制转换。
分享到:
评论

相关推荐

    java向上转型向下转型

    Java 向上转型与向下转型 Java 转型是 Java 编程中的一种非常重要的概念,主要包括向上转型和向下转型两种。向上转型是指将子类对象转换为父类对象,而向下转型是指将父类对象转换为子类对象。 向上转型...

    java向上转型和向下转型.doc

    在Java编程语言中,向上转型和向下转型是对象多态性的关键组成部分,它们涉及到对象的类型转换,使得程序设计更加灵活且易于维护。下面将详细解释这两种转型的概念、原理及应用。 ### 向上转型 向上转型指的是将一...

    Java 向上转型和向下转型的详解

    "Java 向上转型和向下转型的详解" Java 向上转型和向下转型是面向对象编程语言中的一个重要概念,它们都是继承机制的基础上进行转型的。向上转型是将子类对象转换为父类类型的过程,而向下转型是将父类对象转换...

    学习Java之如何正确地向上转型与向下转型.rar

    理解并熟练运用Java中的向上转型和向下转型是掌握面向对象编程的关键。向上转型简化了代码,提高了代码的通用性,而向下转型则提供了访问子类特定功能的能力。在实际开发中,需谨慎使用向下转型,并确保在转型前进行...

    Java向上转型和向下转型实例解析

    "Java向上转型和向下转型实例解析" 在Java中,向上转型和向下转型是两个非常重要的概念,它们都是基于继承机制的。向上转型是指子类对象转换为父类或接口,而向下转型是指父类对象转换为子类。了解向上转型和向下...

    什么是向下转型和向上转型.xmind

    什么是向下转型和向上转型

    java的对象引用与对象的区别、多态性理解、向上转型和向下转型、栈和堆等综合型的知识.docx

    本文将深入探讨对象引用与对象的区别、多态性、向上转型和向下转型以及栈和堆内存的管理。 首先,让我们了解对象引用与对象的区别。对象是根据类实例化出来的实体,它们在内存中的位置通常在堆区,具有实际的数据和...

    Java基础精品课12-抽象类录屏1.向下转型和向上转型.mp4

    Java基础精品课12-抽象类录屏1.向下转型和向上转型.mp4

    Java 转型(向上或向下转型)详解及简单实例

    本文将深入探讨Java中的向上转型和向下转型,同时提供简单的实例来帮助理解这些概念。 首先,让我们了解一下向上转型。向上转型(Upcasting)是指将子类对象赋值给父类引用。在Java中,这是自动完成的,因为子类...

    Java 向下转型的意义

     其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向上转型也比较好理解。  但是向下转型,会不会觉得很傻,我是要用子类实例对象,先是生成子类实例赋值给父类引用,在将父类引用向下强转...

    Java上转型和下转型对象

    1. 向下转型必须先向上转型,否则会发生异常。 2. 下转型对象可以引用子类和父类的属性和方法。 代码示例: ```java public class Shangz { int a = 1; int b = 2; void cal() { System.out.println(a * b); ...

    289.287.JAVA基础教程_面向对象(中)-向下转型的几个常见问题(289).rar

    在Java中,当一个父类引用指向子类对象时,为了能够访问子类特有的属性和方法,我们需要进行向下转型。 2. **为什么需要向下转型?** 在多态性场景下,父类引用可以指向任何子类对象。然而,仅通过父类引用,我们...

    BuilderCalendarXXXX.java

    java向上转型与向下转型

    浅谈Java中向上造型向下造型和接口回调中的问题

    浅谈Java中向上造型向下造型和接口回调中的问题 Java 中的向上造型、向下造型和接口回调是 Java 编程中非常重要的概念。下面我们将对这三个概念进行详细的介绍。 向上造型(Upcasting) 向上造型是指将子类对象...

    向下转型和instanceof运算符的应用.pdf

    在面向对象编程中,向下转型和`instanceof`运算符是两种重要的概念,尤其是在多态性的实现中扮演关键角色。本文将深入探讨这两个主题,并结合Delphi编程语言的背景进行阐述,尽管`instanceof`运算符在Java中更为常见...

    java对象转型实例分析

    在Java编程语言中,对象转型是一种重要的概念,它允许我们改变对象的类型,以便我们可以以不同的方式使用同一个对象。...理解向上转型和向下转型以及 `instanceof` 的用法对于编写健壮的Java代码至关重要。

    java中对象转型多态抽象类接口笔记.doc

    - **定义**:将父类的引用转换为子类的引用,称为向下转型。 - **示例**: ```java Student s = (Student) p; ``` - **特点**: - 需要显式地使用类型转换操作符。 - 如果父类引用实际指向的是子类对象,则转换...

    Java 多态中的类型转换

    本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...

    java方法匹配原则

    ### Java方法匹配原则详解 #### 一、动态方法调用与多态性 在Java中,多态性是一个重要的概念,允许子类对象通过父类引用进行操作,...无论是向上转型还是向下转型,都需要谨慎处理,以确保代码的健壮性和正确性。

    Java继承和多态详解及其综合应用

    接着讨论了多态的定义、方法重载和重写的区别、向上转型与向下转型的应用。最后,通过具体的设计模式示例展示了继承和多态在软件架构中的重要作用和实际应用,如工厂模式、策略模式等。文章还包括了一些进阶技巧,如...

Global site tag (gtag.js) - Google Analytics