iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java向上转型与向下转型详解
  • 830
分享到

java向上转型与向下转型详解

2024-04-02 19:04:59 830人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了java向上转型与向下转型的具体代码,供大家参考,具体内容如下 基础知识:Java中的继承机制使得一个类可以继承另一个类,继承的类称为子类,被继承的类称为父类。在

本文实例为大家分享了java向上转型与向下转型的具体代码,供大家参考,具体内容如下

基础知识:Java中的继承机制使得一个类可以继承另一个类,继承的类称为子类,被继承的类称为父类。在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象,所以子类可以继承父类中所有的属性和方法,包括private修饰的属性和方法,但是子类只是拥有父类private修饰的属性和方法,却不能直接使用它,也就是无法直接访问到它(子类可以通过调用父类的public声明的get方法来获取父类的private属性和private方法)。同时子类可以对继承的方法进行重写(@Override),并且新建自己独有的方法。

1.向上转型:

父类 : class Fruit {}
子类 : class Apple extends Fruit{}

创建向上转型对象 fruit ;
Fruit fruit = new Apple();
Apple 向上转型为父类
如果 Apple 中有重写父类方法,fruit 对象默认调用子类中重写方法

注意 :

fruit 可以直接访问子类重写方法。
fruit 不能直接访问子类私有方法、子类所有属性。
fruit 可以通过重写方法调用子类私有方法和属性
fruit 重写方法中调用方法和属性顺序 : 子类 -> 父类

其他 : 关于重写的返回值类:如果方法的返回类型是 void
和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回该引用类型的子类的。

2.向下转型

注意 : 只有向上转型过的对象才能向下转型

向下转型为恢复子类所有功能。

Apple apple = (Apple) fruit;

3.(多态)作用

减少编程代码

例 : 一个方法调用三种子类

public class Demo {
    public static void run(Fruit fruit){
        fruit.show();
    }
    public static void main(String[] args) {
        run(new Apple());
        run(new Orange());
        run(new Banana());
    }
}

abstract class Fruit{
    abstract void show();
}

class Apple extends Fruit{
    @Override
    public void show(){
        System.out.println("apple");
    }
}

class Orange extends Fruit{
    @Override
    public void show(){
        System.out.println("orange");
    }
}

class Banana extends Fruit{
    @Override
    public void show(){
        System.out.println("banana");
    }
}

再进行向上转型

public class Demo {
    public static void run(Fruit fruit){
        fruit.show();

        if(fruit instanceof Apple){
            Apple apple = (Apple) fruit;
            apple.eatApple();
        }else if(fruit instanceof Orange){
            Orange orange = (Orange) fruit;
            orange.eatOrange();
        }else{
            Banana banana = new Banana();
            banana.eatBanana();
        }
    }
    public static void main(String[] args) {
        run(new Apple());
        run(new Orange());
        run(new Banana());
    }
}

abstract class Fruit{
    abstract void show();
}

class Apple extends Fruit{
    @Override
    public void show(){
        System.out.println("apple");
    }

    public void eatApple(){
        System.out.println("吃了一个apple");
    }
}

class Orange extends Fruit{
    @Override
    public void show(){
        System.out.println("orange");
    }

    public void eatOrange(){
        System.out.println("吃了一个orange");
    }
}

class Banana extends Fruit{
    @Override
    public void show(){
        System.out.println("banana");
    }

    public void eatBanana(){
        System.out.println("吃了一个banana");
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java向上转型与向下转型详解

本文链接: https://www.lsjlt.com/news/167817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java向上转型与向下转型详解
    本文实例为大家分享了java向上转型与向下转型的具体代码,供大家参考,具体内容如下 基础知识:Java中的继承机制使得一个类可以继承另一个类,继承的类称为子类,被继承的类称为父类。在...
    99+
    2024-04-02
  • Java向上向下转型详解
    Java之所以可以向上向下转型是依据Java三大特性之一的多态性,而转型就是对象的多态性,需要注意的是转型的前提是方法覆写 转型: [自动,90%] (1)对象的向上转型:父类 父类...
    99+
    2024-04-02
  • Java怎么正确的向上转型与向下转型
    在Java中,向上转型和向下转型是用来处理父类与子类之间的关系的。 向上转型:将一个子类的对象转换为父类的对象。这样可以实现父类引...
    99+
    2024-03-01
    Java
  • Java中向上转型与向下转型的区别有什么
    Java中向上转型与向下转型的区别有什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Java 向上转型和向下转型的详解转型是在继承的基础上而言的,继承是面向对象语...
    99+
    2023-05-31
    java ava 向上转型
  • 学习Java之如何正确地向上转型与向下转型
    目录一. 类型转型二. 向上转型1. 概念2. 特点3. 语法4. 案例三. 向下转型1. 概念2. 特点3. 语法4. 案例四. 结语一. 类型转型 将一个类型转换成另一个类型的过...
    99+
    2023-05-19
    Java向上转型与向下转型 Java向上转型 Java向下转型
  • Java向上转型和向下转型的区别说明
    目录向上转型和向下转型的区别1.代码实现2.实现向下转型3.此时执行程序简单认识向上转型和向下转型向上转型:父类引用指向子类对象向下转型:子类引用指向父类对象向上转型和向下转型的区别...
    99+
    2024-04-02
  • java向上转型和向下转型的概念是什么
    Java中的向上转型(Upcasting)和向下转型(Downcasting)是指对象在继承关系中的类型转换。向上转型是指将子类对象...
    99+
    2023-09-14
    java
  • C++ 函数继承详解:什么是向上转型和向下转型?
    继承中,向上转型将派生类转换为基类,向下转型将基类转换为派生类。向上转型安全,信息可能丢失;向下转型危险,须确保存在对应派生类,否则返回 nullptr。 C++ 函数继承中的向上转型...
    99+
    2024-04-30
    c++ 函数继承
  • java向上转型发生的时机知识点详解
    1、直接赋值 public static void main(String[] args) { //父类引用 引用了 子类引用所引用的对象 Ani...
    99+
    2024-04-02
  • java多态向下转型怎么实现
    Java中实现向下转型的方式是使用强制类型转换符((子类类型) 父类对象),将父类对象转换为子类类型。 例如,有一个父类Animal...
    99+
    2023-10-24
    java
  • java向下转型指的是什么意思
    这篇文章将为大家详细讲解有关java向下转型指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、概念向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bi...
    99+
    2023-06-15
  • java向下转型基础知识点及实例
    1、概念 向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bird类型 的引用,这就是向下转型 2、格式 子类 子类对象=(子类)父类实例 ...
    99+
    2024-04-02
  • java中向上转型发生的示例代码
    这篇文章主要介绍java中向上转型发生的示例代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、直接赋值public static void main(String[] ar...
    99+
    2023-06-15
  • java中多态的向上转型是什么意思
    今天就跟大家聊聊有关java中多态的向上转型是什么意思,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、说明向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象...
    99+
    2023-06-15
  • java多态的向上转型的概念及实例分析
    1、说明 向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象,即父类 父类对象 = 子类实例。 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不...
    99+
    2024-04-02
  • Java下数字类型的转换 (转)
    Java下数字类型的转换 (转)[@more@]作者:家居猫 各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型: S...
    99+
    2023-06-03
  • CMS 与政府:携手走向数字转型之路
    ...
    99+
    2024-04-02
  • Java 之类型转换与多态详情
    目录一、类型检查二、基本类型转换三、upcast与多态四、downcast五、Object类型一、类型检查 Java的任意变量和引用经过类型声明(type declaration),...
    99+
    2024-04-02
  • JAVA中请求转发与重定向
    这篇文章主要讲解了“JAVA中请求转发与重定向”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA中请求转发与重定向”吧!按照功能不同对Servlet进行拆分,每个Servlet只保留一个...
    99+
    2023-06-02
  • java如何实现类型转换与强制类型转换
    这篇文章主要介绍了java如何实现类型转换与强制类型转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。java类型转换与强制类型转换如果你以前有编程经验,那么你已经知道把一种...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作