java基础学习 day44(多态的优点和劣势)

news/2024/5/9 2:49:09/文章来源:https://blog.csdn.net/u011453680/article/details/129179786

1. 多态的优势

  • 在多态形式下,右边对象可以实现解耦合(即之后的代码与右边的子类对象不绑定,在更改子类对象后,之后的代码仍可以使用),便于扩展和维护
  • 在定义方法的时候,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性和便利

2. 多态的劣势
不能使用子类的特有功能

3. 引用数据类型的类型转换,有几种方式?
自动类型转换,强转类型转换

Person p = new Student( ) ; //自动类型转换
Student s = (Student) p ; //强转类型转换

4. 强转类型转换能解决什么问题?

  • 可以转换成真正的子类类型,从而调用子类独有的功能
  • 转换类型与真实指向的对象类型不一致会报错
  • 转换的时候可以用instanceof关键字进行判断
  • 例如:调用父类没有而子类有的方法时会报错
  • 原因:当调用成员方法时,编译看左边,运行看右边。在编译时会先检查左边的父类有没有这个方法,如果没有直接报错
  • 解决方案:将父类变量强制转换为他指向的子类对象类型
  • 细节:转换的时候不能瞎转,如果转成其他类的类型,就会报错(类型转换错误)
  • 判断:可以用instanceof来判断变量a是否指向Dog类型,格式为 a instanceof Dog,若是,结果为true,若不是,结果为false。
  • 新特性,JDK14以后,判断与强转可以合并起来写,如:a instanceof Dog d,先判断a是否指向Dog类型,如果是,则强转成Dog类型,转换之后变量名为d,结果为true,如果不是,则不强转,结果直接为flase

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

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

相关文章

诚邀您体验人工智能AI

近期,人工智能(AI)领域动作频频,OPENAI公司Chat GPT的出现,标志着人工智能的研究与应用已经进入了一个崭新的发展阶段,国内腾讯、阿里巴巴、百度、易网、国外微软、谷歌、苹果、IBM、Amazon,等互…

电子技术——反馈放大器的分析方法总结

电子技术——反馈放大器的分析方法总结 第一种也是最简单的估算方法,直接拿出反馈网络,计算 β\betaβ 则假设在 AβA\betaAβ 无限大的情况下有 Af≃1/βA_f \simeq 1/\betaAf​≃1/β 。开环法。比第一种方法更能精确的估计 AAA 和 β\betaβ 的值。系…

自动化测试优势和劣势

一、自动化测试概述 软件自动化测试是相对手工测试而存在的,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,节省人力、时间或硬件资源,提高测试效率。 二、自动化测试优势&劣…

BP神经网络参数总结,BP神经训练窗口详解,基于BP神经网络的火灾识别,1000案例之17

目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于B P神经网络的火灾识别 数据集 MATLAB编程BP神经网络代码,并附有GUI窗口 效果图…

Python-项目实战--贪吃蛇小游戏-贪吃蛇功能实现(4)

5.贪吃蛇功能的实现在这一小节,我们就以完成的游戏框架为基础,加入贪吃蛇的功能,完成整个游戏的开发本小节的知识重点包括:贪吃蛇类的设计定义贪吃蛇类添加蛇身体绘制和移动身体改变贪吃蛇的方向贪吃蛇吃食物贪吃蛇的死亡5.1贪吃蛇类的设计我…

java -cp 错误:找不到或无法加载主类

java -cp 错误:找不到或无法加载主类 1.问题场景 在一个项目开发中,我需要写一个 windows的bat脚本,需要在里面 调用 SpringBoot项目生成的jar包,我在调用 classes下面的 jar时 通过 调用 jar包 去调用 jar包中的某个 .java类 …

吃鸡用什么蓝牙耳机效果好?手游吃鸡公认最好的几款蓝牙耳机

蓝牙耳机的作用很多,几乎每个人都需要一副很棒的耳机在通勤或锻炼途中使用,并且玩游戏也少不了它,手游近几年十分的流行,下面整理了几款性能不错的蓝牙耳机。 第一款:南卡小音舱蓝牙耳机 蓝牙版本:5.3 发…

树莓派CM4基础设置

安装系统1.1 软件和硬件准备硬件:CM4(4GB DDR32GB EMMC 板载WIFI和蓝牙)CM4-to-Pi4-Adapter软件:Raspberry Pi或者 Win32DiskImagerRaspberry Pi下载链接:点击直接下载Win32DiskImager下载链接:链接&#x…

JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

一、源码特点 JSP 在线学习管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…

第09章_MySQL子查询

第09章_子查询 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了…

2023年你应该关注的JavaScript趋势

本文翻译者系360 奇舞团前端开发工程师原文标题:Top JavaScript (JS) Trends You Should Follow in 2023原文作者:yevheniia原文地址:https://www.codica.com/blog/top-javascript-trends/#top-java-script-frameworks-and-libraries-to-watc…

【python】考前复习,python基础语法知识点整理

文章目录1.常量与表达式2.变量和数据类型创建变量数据类型动态类型数据类型的转换3.注释4.字符串字符串的定义方式字符串的拼接字符串的格式化①字符串格式化的精度控制字符串的格式化②对表达式进行格式化5.从控制台输入(input)6.运算符算术运算符赋值运算符布尔类型和比较运算…

顶象APP加固的“蜜罐”技术有什么作用

目录 蜜罐有很多应用模式 蜜罐技术让App加固攻守兼备 顶象端加固的三大功能 为了捕获猎物,猎人会在设置鲜活的诱饵。被诱惑的猎物去吃诱饵时,就会坠入猎人布置好的陷阱,然后被猎人擒获,这是狩猎中常用的一种手段。在业务安全防…

【华为OD机试真题】用 C++ 实现 - 最小施肥机能效

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

关于《How to Learn to Code Get a Developer Job in 2023》的经验学习

1. Who is This Book For ? for Anyone who is considering a career in software development. 2. Can Anyone Learn to Code? Any sufficiently motivated person can learn to code. 3.Executive Summary Learning to code is hard.Getting a job as a software devel…

jupyter的安装步骤

1.安装python文件 首先去官网python去下载python的安装包,点击donwload,选择合适的系统。这里我是windown系统,点击进去,如图找到有installer的去下载。不建议下载最新版本的,会有兼容问题。 2.安装python 点击第二个选项是自己配…

JavaScript 进阶--charater3

文章目录前言一、编程思想1.1 面向过程介绍1.2 面向对象编程 (oop)对比二、构造函数三、原型3.1原型3.2 constructor 属性3.3 对象原型3.4 原型继承3.5 原型链总结前言 🆑学习目标 理解面向对象思想,掌握函数原型对象运用面向对象封装继承特点&#xf…

Docker之路(5.Docker镜像学习、镜像加载原理、镜像分层原理、通过commit提交镜像)

1.镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内客, 包活代码、运行时、库、环境变量和配置文件。 所有的应用,直接打包docker镜像&…

UE4 手把手教你做插件(4)做一个可以拖入场景的小方块插件

0,前言 学习一下如何编写一个有actor的插件,能够将它拖入场景里面。 1,创建插件 (1)创建一个空白插件 添加之后vs里面就会多出一个目录: (2)给插件添加一个actor 创建完actor之后&am…

ubuntu本地访问nas

需求 本地磁盘空间太小,本地网络里有个nas,希望将nas作为数据盘挂载到本地使用。 方法1 基于sftp访问nas 首先nas设置时要打开sftp访问功能。 然后用ubuntu桌面访问服务器的功能登录sftp,类似如下指令 sftp://user192.168.0.100 ubuntu下…