关于Java中对象的向上转型和向下转型

什么是多态?

同一个类调用同一个方法会产生不同的影响/结果 这就是多态

public class Pet{
	public void eat(){
		System.out.println("Pet eat...")
	}
}
class Dog extends Pet{
	public void eat(){
		System.out.pringln("Dog eat...")
	}
	public void run(){
		System.out.pringln("Dog run...子类特有的方法")
	}
}
class Cat extends Pet{
	public void eat(){
		System.out.println("Cat eat...")
	}
	public void swim(){
		System.out.println("Cat swim...子类特有的方法")
	}
}

为什么向上转型?

限制对子类特有方法的访问

Pet p=new Dog()//向上转型是子类转父类 自动提升不需要强转
p.eat()
p.run() //报错 只能访问到父类有的方法 编译时看左边类型 运行时看右边类型

为什么向下转型?

使用子类特有的方法

Pet p=new Cat()
p=(Cat)p //向下转型是父类转子类 需要强制转换但只能转到运行期类型(这里是Cat)

原文链接:https://www.cnblogs.com/odfive/p/17337710.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Java中对象的向上转型和向下转型 - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月22日

相关文章

  • SpringMVC视图作用详解

    以下是关于“SpringMVC视图作用详解”的完整攻略,其中包含两个示例。 1. 前言 SpringMVC是一种常用Java Web开发框架,其核心思想是基于MVC模式来实现Web应用程序开发。而视图是SpringMVC框架的一个重要组成部分,负责将模型数据渲染成HTML页面并返回给客户端。本攻略将详细讲解SpringMVC视图的作用和使用方法。 2. Sp…

    Java 2023年5月16日
    00
  • spring boot RestTemplate 发送get请求的踩坑及解决

    关于“spring boot RestTemplate 发送get请求的踩坑及解决”的完整攻略,我将分为以下几个部分逐一进行讲解: 介绍RestTemplate发送get请求的基本用法 分析在发送get请求时可能遇到的踩坑 解决get请求中可能遇到的问题 最后,提供至少两个示例说明。 1. RestTemplate发送get请求的基本用法 RestTempl…

    Java 2023年5月26日
    00
  • Java中Swing类实例讲解

    让我为您详细讲解“Java中Swing类实例讲解”的完整攻略。 1.介绍 Swing类是Java中用于创建图形用户界面(GUI)的一种工具。Swing类库提供了一组组件,如标签、按钮、文本框等等。这些组件可以使用组合方法来创建更复杂的GUI,同时还允许我们自定义这些组件的外观。 2.安装和导入Swing库 在Java环境中,Swing库一般都已经被默认导入了…

    Java 2023年5月23日
    00
  • java读取excel文件并复制(copy)文件到指定目录示例

    针对“java读取excel文件并复制(copy)文件到指定目录示例”,我为您提供以下攻略: 一、读取Excel文件 读取Excel文件需要用到Java中的POI工具包,具体的操作步骤如下: 添加依赖包 在Maven的pom.xml文件中添加如下的依赖: <dependency> <groupId>org.apache.poi<…

    Java 2023年5月19日
    00
  • Java项目部署的完整流程(超详细!)

    下面是Java项目部署的完整流程攻略,包含如下步骤: 1. 编写Java项目代码 首先,我们需要先完成Java项目的编写工作。这里假设我们已经完成了项目的代码编写,并且已经进行了测试验证。 2. 配置构建工具 我们还需要配置构建工具,例如Maven或Gradle,以便能够方便地编译、打包和管理项目。 3. 打包项目 接下来,我们需要将项目打包成jar或war…

    Java 2023年5月19日
    00
  • Java基础–数据结构

    数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:枚举(Enumeration)、位集合(BitSet)、向量(Vector)、栈(Stack)、字典(Dictionary)、哈希表(Hashtable)、属性(Properties)以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collect…

    Java 2023年4月17日
    00
  • 什么是Java Attach API?

    Java Attach API,即Java虚拟机提供的一套API,用于Java进程间的通讯,常用于实现JVM监控、远程调试、Agent实现等。本篇完整使用攻略将详细讲解Java Attach API的使用方法和应用场景。 1. 什么是Java Attach API Java Attach API包含在JDK中,提供了一套用于管理Java虚拟机的API,可以用…

    Java 2023年5月11日
    00
  • java中找不到符号的解决方案

    当Java程序在编译时出现“找不到符号”的错误时,通常意味着在代码中引用了一个不存在的类、方法或变量。这种错误通常是由以下几种情况引起的: 类或方法拼写错误 缺少必要的库或包 编译时缺少依赖项 尝试在不正确的作用域中引用变量或方法 下面将为您介绍一些可能的解决方案来解决此类问题。 1.检查拼写错误 如果Java程序在编译时出现“找不到符号”的错误,第一步应该…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部