码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java新手小白入门篇 Java面向对象(八)


    Java新手小白入门篇 Java面向对象(知识点体系汇总)

    • 面向对象知识链接汇总,知识点体系(思维导图)

    Java新手小白入门篇 Java面向对象(一)

    • Java面向对象(第一天)类,对象,方法的重载,练习题

    Java新手小白入门篇 Java面向对象(二)

    • Java面向对象(第二天)构造方法,this关键字,内存结构初识,null,NullPointerException,引用类型数组(上),拓展,练习题

    Java新手小白入门篇 Java面向对象(三)

    • Java面向对象(第三天)引用类型数组(下),继承,super,向上造型(上),拓展,练习题

    Java新手小白入门篇 Java面向对象(四)

    • Java面向对象(第四天)向上造型(下),重写,访问控制修饰符,static关键字,拓展,练习题

    Java新手小白入门篇 Java面向对象(五)

    • Java面向对象(第五天)final,static final,abstract关键字(抽象方法,抽象类)

    Java新手小白入门篇 Java面向对象(六)

    • Java面向对象(第六天)成员内部类(不经常使用),匿名内部类(经常使用)

    Java新手小白入门篇 Java面向对象(七)

    • Java面向对象(第五天)接口,拓展(类与接口的关系,抽象类与接口的区别),练习题

    Java新手小白入门篇 Java面向对象(八)

    • Java面向对象(第八天)多态(对象的多态,行为的多态),拓展(面向对象)

    Java新手小白入门篇 Java面向对象(九)

    • Java面向对象(第九天)简单的内存结构,面向对象三大特征

    • Java新手小白入门篇系列持续更新中…

    文章目录

      • 一、多态
        • 1. 对象的多态
          • 1.1 向上造型
          • 1.2 向下转型(向下造型)
        • 2. 行为的多态
          • 2.1 方法的重写
          • 2.2 方法的重载
      • 二、拓展
        • 1. 什么是面向对象


    一、多态

    1. 对象的多态

    1.1 向上造型
    • 向上造型,我们也可以理解为引用类型的自动类型转换(小转大)
      • 引用类型中父类为大,子类为小
      • Father f = new Son();
      • Father f = new Daughter();
    • 父类的引用指向子类的对象
       // 父类   引用类型变量(引用)    指向        子类的对象
        Father        f                =         new Son();
      
      • 1
      • 2
    • 能点出来什么看引用的类型
    • 能造型称为的类型
      • 超类
      • 接口
    1.2 向下转型(向下造型)
    • 向下转型,我们可以理解为引用类型的强制类型转换(大转小)
      • Person p = new Student(); Student s = (Student)p;
      • 向下转型成功的条件
        • 引用所指向的对象就是该类型
        • 引用所指向的对象继承该类或者实现了该接口
      GrandPa g = new Son();
      // g(引用) 指向的类型为 Son 类型,所以可以强转为 Son 类型
      Son s = (Son)g; // 引用所指向的对象就是该类型
      // g(引用) 指向的类型为 Son 类型,所以可以强转为 Son 继承的 Father 类型
      Father f = (Father) g; // 引用所指向的对象继承和该类或者实现类该接口
      
      // 爷爷类
      public class GrandPa { }
      
      // 爸爸类
      public class Father extends GrandPa{ }
      
      // 儿子类
      public class Son extends Father{ }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    • 引用类型强转时,如果不符合上述的条件,会造成 ClassCastException 类型转换异常
    • 强转之前我们应该使用 instanceof 关键字进行判断,判断引用指向的对象是否属于改类型

    何时需要强转:若想访问的变量、方法在超类中没有,则需要强转

    2. 行为的多态

    2.1 方法的重写
    • 重写是子类与父类的一种多态性的表现
    • 重写是一种运行时的多态。
    • 重写的前提是继承,向上造型之后,调用同一个方法,在运行时根据造型的类型不同调用各种类型重写之后的方法
    2.2 方法的重载

    重载是否是多态,网友们各执己见,这里我只是阐述下我对这个观点的说明,仅代表我自己

    • 重载是一个类多态性的表现
    • 重载是一种编译时的多态,根据传参时的类型不同或者数量不同来决定到底调用的那个重载的方法

    二、拓展

    1. 什么是面向对象

    面向对象是以对象为核心来思考,解决问题的一种方式,它是 Java 核心的一种思想;
    世间的万事万物我们都可以理解成一个对象,所以才有我们万物皆对象的说法。

  • 相关阅读:
    PROTEUS可以在单片机设计时帮助你做什么
    Pandas数据清洗
    Metaverse Web 3.0 和 DeFi大师班
    Flv.js编译使用
    深入学习 Redis Cluster - 基于 Docker、DockerCompose 搭建 Redis 集群,处理故障、扩容方案
    AI绘图提示词Stable Diffusion Prompt 笔记
    【MySQL】(八)多表查询——内连接查询、外连接查询、子查询
    excel如何实现按班级统计?
    狂神说Spring学习笔记
    centos7安装ansible图形化管理界面AWX
  • 原文地址:https://blog.csdn.net/weixin_46030002/article/details/126441763
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号