多态和继承复习

与其明天开始,不如现在行动!

文章目录

  • 多态
    • 多态成立的条件
    • 细节
  • 继承
  • 💎总结


多态

多态成立的条件

  1. 存在继承关系或者实现关系
  2. 子类重写父类的方法
  3. 父类引用指向子类对象

细节

通过父类的引用调用子类的对象

Animal animal = new Dog();
  1. animal是向上转型的(隐式转换)

  2. 通过animal调用父类和子类都有的成员变量时,调用的是父类的成员变量

  3. 不能调用子类独有的成员变量,编译时期就会报错

  4. 通过animal调用父类和子类都有的成员方法时,调用的是子类的成员变量

  5. 子类没有重写父类的方法,就会调用父类的方法

  6. 子类引用指向父类对象时向下转型,此时必须强制转换为子类

    School s = new Classes();
    Classes c = (Classes) s;//不能是以下这种转换,运行会报错
    Classes c = (Classes) new School(); //❌
    

继承

  1. 在子类可以增加域、增加方法或者覆盖超类方法,但是绝对不能删除继承的任何域和方法
  2. 父类没有无参构造并且子类构造没有显式调用父类其它构造,编译器会报错
  3. Java不支持多继承
  4. 一个类声明了final,其它的类就不能继承这个类,其中的方法也会被声明为final,但是变量不会。
  5. 只能在继承层次内进行类型转换
  6. 在将超类转换子类之前,应该使用instanceof进行检查

抽象

  1. 类即使不含有抽象方法,也可以设置为抽象类

  2. 抽象类不能实例化,但是可以引用一个非抽象的子类对象的实例

    // Person抽象,Student继承Person类而且不抽象
    Person p = new Student();
    

修饰符

  1. public—对所有类可见
  2. protected—对本包和所有子类可见
  3. 默认(不需要修饰符)—对本包可见
  4. private—仅本类可见

对象包装

  1. Integer
  2. 对象包装类是不可变的,一旦构造了对象包装类,就不允许更改包装在其中的值
  3. 对象包装器是final的,因此不能定义他们的子类
  4. 如果在一个条件表达式中同时使用Integer和Double,Integer就会自动拆箱提升为Double,再装箱为Double
  5. 装箱和拆箱是编译器执行的,而不是虚拟机

💎总结

本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言搭建项目-学生管理系统(非链表)

、 目录 搭建offer.h文件 搭建offer.c中的main函数 密码登入系统 搭建my_oferr.c中的接口函数 使用帮助菜单接口函数 增加学生信息接口函数 查询学生信息接口函数 删除学生信息接口函数 保存学生信息接口 打开文件fopen 关闭文件fclose 判断是否保存文件fwrite 退出执行文件…

C++:const类型数据的修改问题

在C语言中const类型的数据严格意义上可以修改: const int a1; int*b&a; *b2;不同于C语言,C中指针类型是要严格对应的,对const类型的数据必须使用const类型的指针进行接收,从而避免修改; 但问题是c中同样支持指针的…

年度工作总结怎么写?掌握这些年终总结万能公式,让你的报告出彩无比!

光阴似箭,日月如梭,时间总是不疾不徐地向前奔去,转眼就来到了2023年的最后一个月,12月一到,上班族和打工人又要开始忙活工作总结的事情~ 工作总结,不仅是一年工作的回顾,更是未来规划的起点。你…

Springboot中的RestTemplate

Springboot中的RestTemplate 在Spring Boot应用程序中,RestTemplate是一个用于进行HTTP请求的强大工具。通常用于与RESTful API进行交互、调用其他服务或执行HTTP请求。它提供了各种方法来发送HTTP请求(如GET、POST、PUT、DELETE等)&#xf…

cuda lib 线程安全的要义

1, 概述 cuda lib 线程安全的几个多线程的情景: 单卡多线程; 多卡多线程-每卡单线程; 多卡多线程-每卡多线程; 需要考虑的问题: 每个 cublasHandle_t 只能有一个stream么? 每个cusolverHandle_t 只能有一…

python3.5安装教程及环境配置,python3.7.2安装与配置

大家好,小编来为大家解答以下问题,python3.5安装教程及环境配置,python3.7.2安装与配置,现在让我们一起来看看吧! python 从爬虫开始(一) Python 简介 首先简介一下Python和爬虫的关系与概念&am…

Android Studio的代码笔记--IntentService学习

IntentService学习 IntentService常规用法清单注册服务服务内容开启服务 IntentService 一个 HandlerThread工作线程,通过Handler实现把消息加入消息队列中等待执行,通过传递的intent在onHandleIntent中处理任务。(多次调用会按顺序执行事件…

Spring Cloud Alibaba实践 --Sentinel

sentinel简介 Sentinel的官方标题是:分布式系统的流量防卫兵。从名字上来看,很容易就能猜到它是用来作服务稳定性保障的。对于服务稳定性保障组件,如果熟悉Spring Cloud的用户,第一反应应该就是Hystrix。但是比较可惜的是Netflix…

三防平板|手持终端PDA|8寸/10寸工业三防平板电脑主板方案定制

近年来,随着科技的快速发展,三防平板成为了各行各业中不可或缺的工具。三防平板采用IP67级别的防护设计,通过了多项测试标准,如国标和美标,具备防水、防摔、防尘、防撞、防震、防跌落以及防盐雾等多重防护功能。因此&a…

JavaScript 简单理解原型和创建实例时 new 操作符的执行操作

function Person(){// 构造函数// 当函数创建,prototype 属性指向一个原型对象时,在默认情况下,// 这个原型对象将会获得一个 constructor 属性,这个属性是一个指针,指向 prototype 所在的函数对象。 } // 为原型对象添…

HarmonyOS应用开发工具DevEco Studio安装与使用

语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 知识库内容逐步完善中… 工欲善其事必先利其器,要编写HarmonyOS应用就需要用到官方提供的IDE工具来编写相应的代码。 在鸿蒙开发者官网,其提供了官方的开…

基于Java医院挂号管理系统

基于Java医院挂号管理系统 功能需求 1、患者信息管理:系统需要提供患者的基本信息录入功能,包括姓名、性别、年龄、联系方式等。此外,系统还应支持对患者信息进行修改、查询和删除的操作。 2、挂号管理:系统需要提供挂号功能&a…

高效的多维空间点索引算法——GeoHash

一、Geohash 算法简介 GeoHash是空间索引的一种方式,其基本原理是将地球理解为一个二维平面,通过把二维的空间经纬度数据编码为一个字符串,可以把平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。以GeoHash方…

springboot 极简案例

安装idea File -> New Project 选择依赖 创建controller文件 输入controller类名 输入代码 运行项目 访问 localhost:8080/hello/boot package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.…

数据库对象介绍与实践:视图、函数、存储过程、触发器和物化视图

文章目录 一、视图(View)1、概念2、基本操作1)创建视图2)修改视图3)删除视图4)使用视图 3、使用场景4、实践 二、函数(Function)1、概念2、基本操作1)创建函数2&#xff…

粤能环保亮相迪拜COP28,智能技术铸就运河城市可持续未来

在全球应对气候变化的重要会议——迪拜COP28大会上,运河城市面临的独特环境挑战引起了广泛关注。随着城市化进程的加快,运河城市在处理固体废物、减少温室气体排放以及维持水资源安全方面面临着严峻考验。智能垃圾分类作为应对这些挑战的有效途径&#x…

一些系统日常运维命令和语句

一、前言 记录一些日常系统运维的命令和语句 二、linux命令与语句 1、linux查看各目录使用磁盘情况 du -h /home home为目录 du -h /home 2.查看内存使用情况 free -h 3、查看进程和CPU使用情况 top top 三、数据库语句 1、统计mysql数据库表数量 SELECT COUNT(*) A…

被动副业机赚钱项目教程,Docker一键安装教程

被动副业机赚钱项目教程,Docker一键安装教程 Docker一键运行 软件下载 视频教程 /opt/wxedge_storage 路径换成你设备里面的路径即可,其余参数不用变, 镜像名为onething1/wxedge 更多安装说明,可参考官方文档:容器魔…

【算法每日一练]-结构优化(保姆级教程 篇4 树状数组,线段树,分块模板篇)

目录 分块 分块算法步骤: 树状数组 树状数组步骤: 线段树点更新 点更新步骤: 线段树区间更新 区间更新步骤: 不同于倍增和前缀和与差分序列。 前缀和处理不更新的区间和 差分处理离线的区间更新问题 倍增处理离线的区间…

C++的继承语法

在面向对象编程中,继承是一种强大的机制,允许一个类(子类)从另一个类(父类)继承属性和方法。C是一种支持面向对象编程的编程语言,通过其灵活而强大的继承语法,开发者可以构建更加模块…