当前位置: 首页 > news >正文

多态的优势和弊端

目录

1.多态的优势

2.多态的弊端是什么?

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

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


1.多态的优势

   方法中,使用父类作为参数,可以接收所有子类的对象

package ploydemo3;import java.util.ArrayList;public class Test {public static void main(String[] args) {//ArrayList<String> list = new ArrayList<>();//只能添加String类型的 泛型ArrayList list = new ArrayList<>();//任意数据添加list.add(4444);list.add("aaaa");System.out.println(list);}
}

2.多态的弊端是什么?

     不能使用子类的特有功能

package ploydemo3;public class Test2 {public static void main(String[] args) {Animal a =new Dog();//编译看左边,运行看右边a.eat();//多态的弊端//不能调用子类特有的功能//为什么报错//当调用成员方法的时候,编译看左边,运行看右边//那么在编译的时候会先检查左边的父类有没有这个方法,如果没有直接报错a.lookHome();//不能调用子类对象//解决方案//变回子类类型就可以了//细节:转回的时候不能瞎转,如果转或其他类的类型,就会报错//        int b=9;
//        byte c=(byte)b;
//        Dog d= (Dog) a;
//        d.lookHome();}
}class Animal{public void eat(){System.out.println("动物在吃东西");}
}class Dog extends Animal{@Overridepublic void eat() {System.out.println("狗吃骨头");}public void lookHome(){System.out.println("狗看家");}
}class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃小鱼干 ");}public void CatchMouse(){System.out.println("猫抓老鼠");}
}

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

1.自动类型转换   

Person p=new Student;

2.强转类型转换

Student s=(Student)p;

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

  可以转换成真正的子类类型,从而调用子类独有的功能。

 if(a instanceof Dog){Dog c=(Dog)a;c.lookHome();}else if(a instanceof Cat){Cat c=(Cat)a;c.CatchMouse();}else {System.out.println("没有这个类型,午饭转换");}

转换类型与真实对象类型不一致会报错

转换的时候用instanceof关键字进行判断

相关文章:

多态的优势和弊端

目录 1.多态的优势 2.多态的弊端是什么&#xff1f; 3.引用数据类型的类型&#xff0c;转换有几种方式 4.强制类型转换能解决什么问题楠&#xff1f; 1.多态的优势 方法中&#xff0c;使用父类作为参数&#xff0c;可以接收所有子类的对象 package ploydemo3;import java.u…...

android h5考勤管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5考勤管理系统是一套完善的WEBandroid设计系统&#xff0c;对理解JSP java&#xff0c;安卓app编程开发语言有帮助&#xff08;系统采用web服务端APP端 综合模式进行设计开发&#xff09;&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主…...

第二道pwn题:shellcode

题目来自视频&#xff1a;链接&#xff1a;https://pan.baidu.com/s/17vX9dbfHkXBw71mcEXBgNQ?pwd6666 提取码&#xff1a;6666查看文件类型和保护&#xff0c;虽然现在的我还没有明白太多的保护。64位&#xff0c;放到ida里边rbp:保存的是栈中当前执行函数的基本地址。当前执…...

《华为数据之道》读书笔记

《华为数据之道》读书笔记第二章&#xff1a;2.2.1 管理总纲有四点&#xff1a;信息架构管理原则、数据产生管理、数据应用管理原则、数据问责与奖惩管理原则2.1.2 信息架构管理政策&#xff1a;管理信息架构的角色与职责&#xff1a;公司数据Owner、各数据Owner、数据管理专业…...

C++源码pcl1.13.0库编译环境搭建及配置

Pcl github库https://github.com/PointCloudLibrary/pcl官网地址https://pointclouds.org/Pcl exe的下载地址&#xff0c;各个版本&#xff0c;以及各版本对应的源码https://github.com/PointCloudLibrary/pcl/releases源码需要编译&#xff0c;编译之前安装AllInOne的exe程序&…...

Idea工具单工程使用卡顿设置

一、开启Idea内存占比指示 1.1、勾选Idea 内存指示器 1.2、右下角展示当前项目&#xff1a;内存/总内存&#xff08;726/1024MB&#xff09; ​​​​​​​ 二、修改Idea自定义内存 2.1、打开help - Edit Custom VM Options 2.2、自定义虚拟内存设置 -Xms1024m // 初始内存分…...

Android 9.0 Camera2退出时屏幕旋转为横屏

1.概述 在9.0的系统rom定制化中,由于是大屏幕产品,所以系统屏幕是默认横屏的,但是在Camera2是竖屏的app,所以会在进入Camera2相机时变成竖屏,退出相机时,还是竖屏, 对于横屏的机器来说不太符合要求,所以要求在退出相机时,旋转为横屏,这就需要知道哪个api监听Camera2 退…...

【云原生】rancher2.6部署MySQL—2023.03

文章目录概要1. 准备NFS服务器1.1 安装nfs1.2 创建挂载路径1.3 启动NFS服务2. 所有node节点上安装NFS服务3. rancher上部署MySQL3.1 创建PV3.2 创建PVC3.3 创建服务发现3.4 部署MySQL服务4. 测试概要 本文以单master节点为例&#xff0c;部署mysql&#xff0c;多master&#x…...

行测-判断推理-图形推理-样式规律-空间重构-立体拼合

有凸必有凹&#xff0c;排除A CD显然不对选BA和4能组成长方体B和3能组成长方体C和1能组成长方体选D这两个东西应该在同一侧&#xff0c;排除A C中间应该要由凸起&#xff0c;排除D选B图1向左旋转90图2逆时针旋转90选A...

细说蛮力法(一)

细说蛮力法&#xff08;一&#xff09;蛮力法百元买百鸡传统暴力枚举减少无用枚举最优解法蛮力法 蛮力法通常在算法题中经常用到&#xff0c;也称为暴力枚举&#xff0c;其核心为遍历&#xff0c;即通过列举所有可能的情况&#xff0c;从而得到合适的解。从人的思维角度来看&am…...

关于推荐系统的详细介绍

简介推荐系统是一种信息过滤系统&#xff0c;能够自动预测用户对特定产品或服务的偏好&#xff0c;并向其提供个性化的推荐。它通常基于用户的历史行为、个人喜好、兴趣和偏好等&#xff0c;通过数据挖掘和机器学习算法&#xff0c;在大数据的支持下生成个性化的推荐内容&#…...

leetCode刷题笔记

文章目录1. 把两个有序链表整合成一个新的有序列表2. 两数之和3. 有效括号的字符串1. 把两个有序链表整合成一个新的有序列表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 package com.example.demo.main.Domain; impo…...

数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)

文章目录 引言I 数学是“有底”的学问(止于公理)II 数学对哲学的影响2.1 哲学思想受益于数学思维2.2 笛卡尔的贡献2.3 莱布尼茨的哲学思想III 哲学对数学的影响引言 数学和科学各个分支之间在方法上却具有相通性和普适性,这些通用的方法常常让很多学科同时受益,依靠数学逻…...

大聪明教你学Java | 带你了解 Redis 的三种集群模式

前言 &#x1f34a;作者简介&#xff1a; 不肯过江东丶&#xff0c;一个来自二线城市的程序员&#xff0c;致力于用“猥琐”办法解决繁琐问题&#xff0c;让复杂的问题变得通俗易懂。 &#x1f34a;支持作者&#xff1a; 点赞&#x1f44d;、关注&#x1f496;、留言&#x1f4…...

Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)

编译时异常&#xff1a;在编译阶段&#xff0c;必须要手动处理&#xff0c;否则代码报错&#xff08;提醒程序员检查本地信息&#xff09; 运行时异常&#xff1a;在编译阶段是不需要处理的&#xff0c;是代码运行时出现的异常&#xff08;代码出错而导致程序出现的问题&#…...

液氮恒温器概述

恒温器是直接或间接控制一个或多个热源和冷源来维持所要求的温度的一种装置。 恒温器要实现这种功能&#xff0c;就必须具有一个敏感元件和一个转换器&#xff0c;敏感元件量度出温度的变化&#xff0c;并对转换器产生所需的作用。转换器把来自敏感元件的作用转换成对改变温度…...

Shiro核心——Realm

RealmRealm的作用Realm的实现Realm的配置实例在Shiro中&#xff0c;Realm是一个非常灵活和强大的安全组件&#xff0c;它能够与各种数据源进行集成&#xff0c;满足各种安全需求。通过实现自定义的Realm&#xff0c;我们可以轻松地定制身份验证、授权和加密逻辑&#xff0c;实现…...

开发钉钉微应用,实现免登+调试

1.创建h5微应用 https://open.dingtalk.com/document/orgapp/develop-org-h5-micro-applications 根据里面的三个步骤,创建h5微应用 2.免登之前必须要先进行JSAPI的授权 文档说明: https://open.dingtalk.com/document/orgapp/jsapi-authentication 根据文档中的说明 步骤…...

0308java基础-注解,反射

一&#xff0c;注解 1.什么是注解&#xff1a; Annotation是从jdk5.0开始引入的新技术作用&#xff1a; 不是程序本身&#xff0c;可以对程序作出解释可以被其他程序读取格式&#xff1a; 以注释名在代码中存在&#xff0c;还可以添加一些参数值SuppressWarnings(value"…...

【鸿蒙应用ArkTS开发系列】- 页面跳转及传参

先看下效果图 大致实现的功能点&#xff1a; 从Indext页面跳转到Second页面&#xff0c;传递两个参数&#xff0c;一个字符串&#xff0c;一个数量&#xff1b;Second获取Index页面传递的数据&#xff1b;Second页面点击返回弹窗&#xff1b;Second页面返回携带参数数据&#…...

StringBuilder 类

Java StringBuilder类是一个可变字符串缓冲区&#xff0c;它提供了丰富的方法可以方便地进行字符串操作。与Java StringBuffer类类似&#xff0c;Java StringBuilder类的主要作用是优化字符串的拼接操作&#xff0c;提高代码的效率。在本篇文章中&#xff0c;我们将详细介绍Jav…...

kubectl-k8s用户切换

kubernetes默认使用$HOME/.kube/config配置文件。可以在配置文件中定义多个USER和Cluster的上下文。所以就有两种方式切换用户同一个config中&#xff0c;切换不同用户上下文切换不同的config配置文件同config切换不同用户上下文查看config文件kubeconfig config view查看当前上…...

【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包

前言大厂面试题分享 面试题库前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库大家好&#xff0c;笔者呢最近再回顾JavaScript知识时&#xff0c;又看到了JavaScript的一些较为常见的内容&#xff0c;仔细看了之后发现…...

计算机网络-- 应用层(day08)

计算机网络两种方式 网络应用程序运行再处于网络边缘的不同端系统上&#xff0c;通过彼此间的通信来共同完成某项任务。 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。 目前流行的主要有以下两种&#xff1a; 客户/服务器…...

English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一

English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一朗读节奏元音的长度元音发音在清辅音和浊辅音前的区别元音发音跟后面浊辅音节数的区别元音在重读音节中复习大小元音发音对比/ʌ/ 舌中音/ɒ/ 舌后音/ʊ/ 舌后音/ɪ/ 舌前音[ɑ:] VS […...

SpringBoot——统一功能处理

处理登陆拦截 上一片博客中讲到SpringAOP可以对页面进行拦截&#xff0c;我们可以用SpringAOP实现对登陆的拦截 但是由于拦截需要HttpSession对象&#xff0c;并且之后还需要页面重定向&#xff0c;因此在实际应用中&#xff0c;并不用SpringAOP进行登陆拦截&#xff0c;而是…...

ORACLE SQL格式化小数点

ORACLE SQL格式化小数点 select CONCAT(TO_CHAR(0.00100,‘990.999’),‘%’) as a0 , CONCAT(TO_CHAR(1100,‘990.999’),‘%’) as a1 , CONCAT(TO_CHAR(0.236100,‘990.999’),‘%’) as a2 , CONCAT(TO_CHAR(0.0200100,‘990.999’),‘%’) as a3 , CONCAT(TO_CHAR(1.0310…...

【信息学奥数】—— 第一部分 C++语言 知识总结

【信息学奥数】—— 第一部分 C语言 知识总结C语言一、C语言入门二、顺序结构程序设计运算符和表达式常量和变量标准数据类型数据输入输出三、控制结构程序设计if语句switch语句四、循环结构程序设计for语句while语句do-while语句五、数组一维数组二维数组字符数组六、函数七、…...

video层级过高,以及界面使用多个video时,在安卓APP上同时播放的问题(uniapp)

1、video层级过高的问题 问题一&#xff1a; 我的界面由于是自定义导航栏&#xff0c;所以使用video时&#xff0c;上滑界面video会直在最上层&#xff0c;盖着 头部导航栏 解决方法&#xff1a;使用cover-view,自定义头部使用cover-view替换view 问题二&#xff1a;自定义…...

C++基础了解-14-C++ 字符串

C 字符串 一、C 风格字符串 C 风格的字符串起源于 C 语言&#xff0c;并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此&#xff0c;一个以 null 结尾的字符串&#xff0c;包含了组成字符串的字符。 下面的声明和初始化创建了一个 RUNOOB …...