Java面向对象——多态
· 即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。
· 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)。
· 多态存在的条件:
1. 有继承关系;
2. 子类重写父类的方法;
3. 父类引用指向子类对象。
多态注意事项:
1. 多条是方法的多态,属性没有多态;
2. 父类和子类,有联系 类型转换异常:ClassCastException!
注意,以下方法没有多态:
1. static方法,属于类,不属于实例,所以该方法不能被重写;
2. final 常量;无法重写;
3. private方法 私有;无法重写。
代码演示:
public class Person {public void run(){System.out.println("run");}
}
public class Student extends Person{@Overridepublic void run() {System.out.println("son");}public void eat(){System.out.println("eat");}
}
import oop.demo06.Person;
import oop.demo06.Student;
//一个项目应该只存在一个main方法
public class Application {public static void main(String[] args) {//一个对象的实际类型是确定的//new Student();//new Person();//可以指向的引用类型就不确定了:父类的引用指向子类//Student子类能调用的方法都是自己的或者继承父类的Student S1 = new Student();//Person父类,可以指向子类,但是不能调用子类独有的方法Person S2 = new Student();Object S3 = new Student();//对象能执行哪些方法,主要看对象左边的类型,和右边关系不大S2.run(); //子类重写了父类的方法,就执行子类的方法S1.run();//想调用的话,用强制转换((Student) S2).eat();}
}
instanceof(类型转换)
instanceof关键字:判断一个对象是什么类型
创建一个父类Person,子类Student、Teacher
代码演示:
public static void main(String[] args) {//Object > Person > StudentObject object = new Student();System.out.println(object instanceof Student); //trueSystem.out.println(object instanceof Person); //trueSystem.out.println(object instanceof Object); //trueSystem.out.println(object instanceof Teacher); //falseSystem.out.println(object instanceof String); //falseSystem.out.println("============================");Person person = new Student();System.out.println(person instanceof Student); //trueSystem.out.println(person instanceof Person); //trueSystem.out.println(person instanceof Object); //trueSystem.out.println(person instanceof Teacher); //false//System.out.println(person instanceof String); 编译报错System.out.println("============================");Student student = new Student();System.out.println(student instanceof Student); //trueSystem.out.println(student instanceof Person); //trueSystem.out.println(student instanceof Object); //true//System.out.println(student instanceof Teacher); 编译报错//System.out.println(student instanceof String); 编译报错}
类型转换:
1. 父类引用指向子类的对象;
2. 把子类转换为父类,向上转型;可能丢失一些方法;
3. 把父类转换为子类,向下转型;强制转换;
4. 方便方法的调用,减少重复的代码。简洁
代码演示:(父类、子类同上)
//类型之间的转换:父 子//高 低Person obj = new Student();//将上面的对象转换为Student类型,就可以使用Student的方法了Student student = (Student) obj;student.go();//或((Student) obj).go();//低 高//子类转换为父类,可能会丢失自己的一些方法Student student1 = new Student();student1.go();Person person = student1;
相关文章:
Java面向对象——多态
即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)。 多态存在的条件: 1. 有继承关系; 2. 子类重写父类…...
python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战
1.对矩阵中对应位置的元素,做softmax 对于一个向量,softmax函数会对其中每一个元素进行指数运算,然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时,我们实际上是在对每个位置的一组数(从各个矩阵的同…...
Angular前端项目在Apache httpd服务器上的部署
Apache Httpd和Tomcat主要区别:Tomcat是一个Java Servlet容器,用于运行Java Servlet和JavaServer Pages(JSP),而Apache HTTP服务器是一个通用的Web服务器,用于提供静态和动态内容。 Apache httpd安装&#…...
Oracle 更改数据文件位置的几种常用方式
Oracle 更改数据文件位置的几种常用方式 A.归档模式下 1、offline 表空间:alter tablespace tablespace_name offline; 2、复制数据文件到新的目录; 3、rename 修改表空间,并修改控制文件; 4、online 表空间…...
【opencv】图像畸变校正
接上篇文章:【鱼眼+普通相机】相机标定 附代码: 方法一: 使用cv2.undistort """Create May 11, 2024author Wang Jiajun """import cv2 import numpy as npdef correct(img,camera_fileE:/cali…...
Charger之二输入电压动态电源原理(VIN-DPM)
主要内容 Charger的VIN-DPM 前篇内容:电池管理IC(Charger)了解一下? 领资料:点下方↓名片关注回复:粉丝群 正文 一、 VIN-DPM概念 VIN-DPM是指输入电压动态电源管理(Input voltage dynamic…...
【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)
🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。 🎯每天努力一点点,技术变化看得见 文章目录 创建表查看表结构修改表删除表 创建表 语法: create table table_name(field1 datatype,field2 datatype,fiel…...
曲线救国:window 安装 docker
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)
前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…...
Pascal Content数据集
如果您想使用Pascal Context数据集,请安装Detail,然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作: git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…...
【Unity】使用Resources.LoadAll读取文件的顺序问题
最近在做客户的一个项目,其中的一个模块使用到了照片,但是发现了一个很严重的问题。当你在使用Unity的时候,它竟然不按照顺序读取?这个机器人是不是逻辑有问题?如下图: 名字脱敏了哈。。。 照片比较多&…...
pdf怎么标注红色方框?五种PDF标注红色方框方法
pdf怎么标注红色方框?在当今数字化时代,PDF文档已成为我们日常工作和学习中不可或缺的一部分。然而,如何在海量的PDF文件中快速、准确地标注出重要信息,让内容更加醒目呢?今天,我将向大家介绍五种PDF标注红…...
C++字符串细节,面试题06
文章目录 22. 字符串22.1. 字符数组 vs 字符指针 vs 常量字符指针 vs string22.2. strcpy vs sprintf vs memcpy22.3. strlen vs length vs size vs sizeof22.4. 字符串之间的转换22.5 其他数据类型与字符串之间的转换22.6 字符串分割 22. 字符串 22.1. 字符数组 vs 字符指针 …...
AutoModelForCausalLM.from_pretrained 函数调用本地权重报错
文章目录 1、代码报错的位置(前情提要)finetune_lora.shfintune_clm_lora.py 2、报错截图2.1、huggingfaces上的 meta-llama/Llama-2-7b-chat-hf2.2、服务器上模型文件路径 3、特别注意事项 1、代码报错的位置(前情提要) 在终端直…...
【qt】动态属性
这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C中,成员数据就是这…...
Git知识点总结
目录 1、版本控制 1.1什么是版本控制 1.2常见的版本控制工具 1.3版本控制分类 2、集中版本控制 SVN 3、分布式版本控制 Git 2、Git与SVN的主要区别 3、软件下载 安装:无脑下一步即可!安装完毕就可以使用了! 4、启动Git 4.1常用的Li…...
【数据库】数据库指令
一。数据库打开 1.命令行 2.进入mysql mysql -uroot -p密码 3.退出 exit; 二。针对数据库的操作 1.创建数据库(有分号) create database student; 2.使用数据库 use student 3.删除数据库(有分号) drop database…...
设计模式——状态模式(State)
状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式通过把对象的每一个状态都封装到一个单独的类中,并将请求委托给当前状态对象来让状态的变化与行…...
理解打包好的vue项目结构dist包
目录 linux查询dist目录整体解释子目录文件解释CSSFONTSJS linux查询dist目录 roothcss-ecs-7881:/www/java_project/dist# ls -l total 3004 drwxr-xr-x 2 root root 4096 Dec 31 10:15 css -rw-r--r-- 1 root root 4286 Dec 31 10:15 favicon.ico drwxr-xr-x 2 root r…...
24深圳杯C题18页高质量论文+可执行代码+图表
比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…...
新闻传播论文降AI工具免费推荐:2026年新闻传播毕业论文AIGC超标免费4.8元达标完整方案
新闻传播论文降AI工具免费推荐:2026年新闻传播毕业论文AIGC超标免费4.8元达标完整方案 帮室友处理过新闻传播论文降AI,前前后后试了四款工具,最后固定在嘎嘎降AI(www.aigcleaner.com)。 4.8元,达标率99.2…...
2026年做了一个大胆的决定:我要收徒弟了!
如果你已经在测试/开发领域摸爬滚打几年,一定有过这样的困惑:• 报了很多课,学了很多工具/框架/技术,但遇到真实项目问题依然无从下手• 想转型测开/管理/AI测试,却不知道自己的短板到底在哪• 职场遇到瓶颈࿰…...
罗技鼠标宏完整实现方案:从Lua脚本到PUBG精准射击的进阶指南
罗技鼠标宏完整实现方案:从Lua脚本到PUBG精准射击的进阶指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在竞技射击游戏《绝地求…...
5分钟搭建Sunshine游戏串流:免费开源让全家共享游戏乐趣
5分钟搭建Sunshine游戏串流:免费开源让全家共享游戏乐趣 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想在客厅沙发上畅玩书房电脑里的3A大作࿱…...
433MHz无线模块解码避坑指南:从示波器抓波形到STM32代码实现的完整流程
433MHz无线模块解码实战:从波形分析到STM32代码优化的全流程解析 1. 解码前的硬件准备与信号捕获 当你第一次拿到433MHz无线模块时,最令人困惑的往往是"为什么我的代码无法正确解码?"要解决这个问题,我们需要从最基础的…...
给AI模型选‘口粮’:MIT-BIH、CPSC、PTB-XL,哪个ECG数据集更适合你的项目?
给AI模型选‘口粮’:三大ECG数据集深度评测与实战指南 当心电图(ECG)分析遇上人工智能,数据质量直接决定模型性能天花板。PhysioNet作为全球最大的生物医学信号开放平台,其收录的MIT-BIH、CPSC-2018和PTB-XL三大经典EC…...
别再乱接线了!手把手教你用SC-09电缆搞定三菱FX2N PLC通讯(附GX Developer配置)
三菱FX2N PLC通讯实战:SC-09电缆的正确打开方式 第一次接触三菱FX2N PLC时,很多人都会被通讯问题难住。那些看似简单的接线背后藏着不少门道——用错线序可能导致通讯失败,甚至损坏设备。本文将带你避开常见陷阱,从硬件连接到软件…...
UMI 采集技术落地应用 核数聚助力人形机器人快速迭代
在具身智能从实验室走向产业落地的关键期,数据饥渴已成为行业公认的核心瓶颈。传统真机遥操作采集成本高、效率低、泛化性差,仿真数据又存在物理真实性不足的问题。此时,UMI(Universal Manipulation Interface,通用操作…...
2026实测:如何把知网论文AI率从90%降到4%?(手把手教你降AI)
一份知网AIGC检测报告摆在面前:疑似度84.9%。几乎整篇论文都被标红,系统判定其中84.9%的内容"疑似AI生成"。这个数字意味着什么?意味着在任何一所高校的标准下,这篇论文都不可能通过审查。 然而同一篇论文经过处理后再次…...
MCU工程迁移实战:从STM32到MSPM0L1306的完整指南
1. 项目概述:从零理解MCU工程迁移最近在折腾TI的MSPM0系列MCU,特别是MSPM0L1306这颗芯片。很多朋友拿到新的开发板或者从旧项目切换到新平台时,最头疼的就是“迁移工程”这一步。这不仅仅是把代码从一个文件夹复制到另一个文件夹那么简单&…...
