Java学习笔记17——多态与抽象

2023-11-09

多态

多态是什么

多态是同一个对象,在不同时刻表现出来的不同形态

多态的前提和体现

1.有继承/实现关系
2.有方法重写
3.有父类引用指向子类对象

多态中成员访问的特点

1.成员变量:编译看左边,执行看左边
2.成员方法:编译看左边,执行看右边
原因:成员方法有重写,但是成员变量没有

多态的好处和弊端

好处:提高了代码的扩展性(父类引用指向子类对象)
弊端:不能访问子类的特有功能

多态中的转型

分类

1.向上转型
从子到父,父类引用指向子类对象
2.向下转型
从父到子,父类引用转为子类对象

Aminal a=new Cat();//向上转型,不能访问子类特有功能
Cat c=(Cat)a;//向下转型,可以访问子类特有功能

抽象类

什么是抽象类

在Java中,一个没有方法体的方法,应该被定义为抽象方法,而类中如果有抽象方法,该类被定义为抽象类

抽象的关键字

abstract

抽象类的特点

1.抽象类和抽象方法必须使用abstract修饰
2.抽象类可以有非抽象方法
3.抽象类不能直接创建对象,需要借助多态的形式,叫抽象类多态
4.抽象类的子类,要么重写抽象类的所有抽象方法,要么也是抽象类

抽象类的成员特点

1.成员变量:
变量/常量
2.构方法:
有构造方法,但是不能直接实例化,构造方法用于子类访问父类数据时的初始化
3.成员方法:
可以有抽象方法,用来限定子类必须完成的某些动作
也可以有非抽象方法,提高代码复用性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习笔记17——多态与抽象 的相关文章

随机推荐

  • 小伙伴们,赶紧,免费的视频托管。

    最近 朋友的公司培训频道要上在线视频功能 说自己找了一些行业解决方案 最后对比使用视频托管的方式比较省事 说白了就是省钱呗 挑来挑去 觉得感觉保利威视这家托管服务商的视频播放效果较好 并且功能相对多 比较符合当前项目需求 他在网站上注册的账
  • SpringBoot和Vue跨域问题

    Access to XMLHttpRequest at http localhost 8301 admin vod user info token admin token from origin http localhost 9528 ha
  • gateway 报错 reactor.core.Exceptions$ErrorCallbackNotImplemented

    生产环境好好的 突然前端请求全部跨域 请求 500 gateway 报错 reactor core Exceptions ErrorCallbackNotImplemented java lang IndexOutOfBoundsExcep
  • 困扰我两天的问题:StratifiedShuffleSplit与train_test_split创建的数据集为何训练结果不同?

    困扰我两天的问题 StratifiedShuffleSplit与train test split创建的数据集为何训练结果不同 让人头疼的问题 最近 我在进行卷积模型的分类任务时发现了一个StratifiedShuffleSplit函数的bu
  • js map遍历 修改对象里面的值_js map()处理数组和对象数据

    之前的文章梳理了JS数组与对象属性的遍历方法 本文介绍专门用以遍历并处理数据的map 方法 一 原生map map 是数组的一个方法 它创建一个新数组 其结果是该数组中的每个元素都调用一个提供的函数后返回的结果 map 里面的处理函数接受三
  • 第十章 MyBatis与Spring的整合

    单选题 1 进行MyBatis与Spring的整合配置文件编写时 不包括有 7分 A db properties B applicationContext xml C mybatis config xml D springmvc confi
  • 跨域请求避免OPTIONS请求(预检请求)

    有时候前后端分离域名不一致 会造成跨域请求 而跨域请求有时候会自动发起两次请求 第一次为预检请求 即OPTIONS请求 一般来说使用 application json 的 post 请求是必然会带入OPTIONS请求 OPTIONS请求也被
  • flex布局中align-items 和align-content的区别

    参考资料 http stackoverflow com questions 31250174 css flexbox difference between align items and align content 看了很多翻译的技术文档
  • 王佩丰excel学习笔记(三):第七——十讲

    目录 第七讲 第八讲 第九讲 第十讲 第七讲 excel连接文本 各种基础运算 相对引用与绝对引用 利用 按F4可以快速加美元号 但我电脑不行 函数 sum average rank 要排谁 排名的区域 这节总体简单 第八讲 if 判断条件
  • 自动劫持root密码

    前言 1 暴力破解sshd服务密码 2 自动劫持root密码并转发密码到邮箱 实战 自动劫持root密码并转发密码到邮箱 1 自动劫持root密码 2 把存密码的文件转发到邮箱 上传软件 rz 0x06 openssh 5 9p1 patc
  • 学习笔记-Matlab算法篇-插值算法

    插值算法 01拉格朗日多项式插值 进而得到拉格朗日多项式 Matlab求解 matlab中没有自带的求解函数 需要自行实现 function f Language x y x0 syms t if length x length y n l
  • 《王道》数据结构之绪论(一)

    数据结构入门之绪论 一 大纲 一 数据结构 1 1 基本概念 1 2 数据结构三要素 1 2 1 逻辑结构 1 2 2 物理结构 1 2 3 数据运算 二 算法 2 1 基本概念 2 1 1 五个特性 2 1 2 优秀算法的标准 2 2 算
  • 高防服务器和高防CDN

    现如今无论是高防服务器还是高防CDN的应用都十分广泛 但是大家对高防服务器和 高防CDN的作用理解的都比较模糊 因为无论是百度还是论坛等地方搜索的话都会弹出一 大堆高防服务器和高防CDN的连接导致大家想了解高防服务器和高防CDN的欲望下降甚
  • java 打印map后的输出

    java 打印map后的输出 syso直接打印parameters map类型 输出 password Ljava lang String 1080882d username Ljava lang String 69504d30 表示一维数
  • QT 创建使用动态库

    一 创建并编译库 创建项目 选择Library下的C Library 2 选择shared library 3 此时创建的项目的 pro文件如下 QT gui TEMPLATE lib DEFINES Data LIBRARY DEFINE
  • 看看Android的触摸事件分发

    当我们的手指从触摸屏幕上的各种View 开始到这个点击事件的结束到底经历了什么 我们来简单分析下 之所以是简单分析 是因为这里完全不涉及hal层 事件类型 触摸事件会有三种类型 int action MotionEventCompat ge
  • 硬件设计——外围电路(晶振电路)

    硬件设计之晶振电路 为什么要用晶振 晶振电路由何组成 晶振电路中其电容的作用 在日常的电路设计中 我们经常会用到晶振电路 所以我们就要首先先提一下什么是晶振 这样才能理解晶振电路 为什么要用晶振 晶振的作用是为系统提供基本的时钟信号 通常一
  • 基于金融大数据的特征提取与趋势预测系统(一)2021-06-30

    项目分工和项目需求初步了解 在本项目的分工中我负责的是前端展示部分 前端展示的两个部分 1 登陆及注册 实现用户登陆本系统 以及注册成为用户的功能 以保证用户在使用本系统时的安全性 2 股票可视化模块 数据可视化主要旨在借助于图形化手段 清
  • TypeScript的数组和元组

    数组 在TypeScript中数组的定义与JavaScript中别无二致 但是JavaScript中的数组具有很大灵活性 即数组内可以存储任意类型数据 那么在TypeScript中能不能做到呢 答案是肯定的 const arr string
  • Java学习笔记17——多态与抽象

    多态与抽象 多态 多态是什么 多态的前提和体现 多态中成员访问的特点 多态的好处和弊端 多态中的转型 分类 抽象类 什么是抽象类 抽象的关键字 抽象类的特点 抽象类的成员特点 多态 多态是什么 多态是同一个对象 在不同时刻表现出来的不同形态