Day04:继承的意义(下)
对象转型
向上造型
什么是向上造型?
子类对象赋给父类引用。
父类引用指向子类对象。
子类转成父类 默认进行(父类引用指向子类对象)。
为什么需要向上造型?
子类对象可以放入父类类型的数组中。
父类数组同一管理所有子类对象。
减少代码冗余
向上造型的格式:
父类类型 引用=子类对象;
Pet p=new Dog();
向上造型的特性:
向上造型后的父类引用,只能调用到父类中的成员,不能调用到子类特有的成员。
向下转型(强制类型转换):
什么是类型转换?
就是将一个类型的引用,转换成另一个类型。
为什么需要类型转换?
父类引用无法调用到子类特有的成员如果必须要调用,就需要类型转换。
父类转成子类 强制进行。
强制类型转换的注意事项:
如果将一个A子类的引用强转成B子类,会发生类型转换异常ClassCastException为了防止这样的异常发生在强转前,一般要先判断一下实际的类型
关键字:
instanceof:测试左边的对象是否是右边类的实例,
如果是返回true否则fasle。
<对象> instanceof <类型>
方法重写(方法覆盖,override)
什么是方法重写?
子类不满父类中某个方法的功能,重新编写父类方法的现象。
什么需要方法重写?
父类中的方法不能满足子类的要求。
如何进行方法重写?
简单的方法重写:
在子类中编写一个和父类中的某个方法,方法名相同,参数列表相同,访问修饰符和返回值也相同的方法。
方法重写的效果:
在向上造型的前提下
指向子类对象的父类引用
在调用被子类重写的方法时
运行的是子类重写后的方法
方法重写的运行期绑定:
父类引用在运行方法时
jvm会检测这个父类引用指向的
真实类型,调用真实类型重写后的方法
方法重写的详细规则:
必须相同的方法名,参数列表
可以不同的
返回值:
基本数据类型。
必须相同引用数据类型。
可以返回其子类
访问修饰符:
子类重写的方法的访问修饰符,
不能比父类更严格
访问修饰符类型:
public
protected
默认
private
重载和重写的区别?
位置 方法名 参数 返回值 修饰符
重载:同类 相同 不同 无关 无关
重写:子类 相同 相同 相同 相同
重载:只看同名方法的参数列表。编译期绑定
重写:子父类方法要一模一样。运行期绑定
Day04:继承的意义(下)的更多相关文章
- Unit04 - 继承的意义(下) 、 访问控制 、 static和final
Unit04 - 继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖 1)发生在父子类中,方法名称相同,参数列表相同,方法体不同 2 ...
- Unit03 - 对象内存管理 、 继承的意义(上)
Unit03 - 对象内存管理 . 继承的意义(上) 1.内存管理:由JVM来管理的 1)堆: 1.1)存储所有new出来的对象(包含成员变量) 1.2)没有任何引用所指向的对象就是垃圾 ...
- HDU - 5755:Gambler Bo (开关问题,%3意义下的高斯消元)
pro:给定N*M的矩阵,每次操作一个位置,它会增加2,周围4个位置会增加1.给定初始状态,求一种方案,使得最后的数都为0:(%3意义下. sol:(N*M)^3的复杂度的居然过了. ...
- maven工程聚合和继承的意义
聚合的意义: 对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的 ...
- HDU 5627 Clarke and MST &意义下最大生成树 贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5627 题意:Bestcoder的一道题,让你求&意义下的最大生成树. 解法: 贪心,我们从高位 ...
- 李雅普诺夫函数 LyapunovFunction 李雅普诺夫意义下的稳定性
https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数 ...
- 2019牛客暑期多校训练营(第九场)B:Quadratic equation (二次剩余求mod意义下二元一次方程)
题意:给定p=1e9+7,A,B. 求一对X,Y,满足(X+Y)%P=A; 且(X*Y)%P=B: 思路:即,X^2-BX+CΞ0; 那么X=[B+-sqrt(B^2-4C)]/2: 全部部分都要 ...
- hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004) 【组合数学 + 数论 + 模意义下的FFT】
题目链接 首先利用组合数学知识,枚举两人的总胜场数容易得到 这还不是卷积的形式,直接搞的话复杂度大概是O(n^2)的,肯定会TLE.但似乎和卷积有点像?想半天没想出来..多谢Q巨提醒,才知道可以用下面 ...
- 模意义下的FFT算法
//写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序 ...
随机推荐
- libusb-test
/******************************************************************************** * * File Name : li ...
- UVA - 10829 L-Gap Substrings (后缀自动机+线段树启发式合并)
题意:统计一段字符串中形如UVU的子串个数(其中V的长度固定为g). 问题等价于求满足$g+1\leqslant |j-i|\leqslant g+LCP(i,j)$的后缀(i,j)的对数,即$\su ...
- poj3208 Apocalypse Someday[数位DP]
数位中出现至少3个连续的'6'的数字(称魔鬼数),询问满足要求的排名k的数. 经典题型.采用试填法. 递推做法:预处理出$i$位数字中满足要求的数(下记为'魔鬼数').对每一位都从0到9试一遍,然而卡 ...
- GitHub : Hello World
这个写的太好啦,让我也没啥可以写的啦:http://www.open-open.com/lib/view/open1454507333214.html
- XML的树结构与语法规则
㈠概念 什么是 XML? ⑴XML 指可扩展标记语言(EXtensible Markup Language) ⑵XML 是一种标记语言,很类似 HTML ⑶XML 的设计宗旨是传输数据,而非显示数据 ...
- Visual Studio 2008:路径设置
造冰箱的大熊猫,本文适用于Visual Studio 2008中文版@cnblogs 2018/11/30 1.头文件路径设置 如果头文件所在路径未在环境变量中定义,编译时会出现C1083错误,提示无 ...
- 4.JSP内置对象
JSP内置对象,JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过 JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它起到了简化页面的作用. 在JSP中一 ...
- 【封装工程】OI/ACM常用封装
前言 笔者有的时候无聊,就将一些奇怪的东西封装起来. 范围主要是在\(OI\)或者\(ACM\)中的常见数据结构等. 随着笔者的能力的提升,可能会对原来的封装程序进行修改,并且保留原来的版本. [ST ...
- sklearn pca降维
PCA降维 一.原理 这篇文章总结的不错PCA的数学原理. PCA主成分分析是将原始数据以线性形式映射到维度互不相关的子空间.主要就是寻找方差最大的不相关维度.数据的最大方差给出了数据的最重要信息. ...
- kmeans与kmeans++的python实现
一.kmeans聚类: 基本方法流程 1.首先随机初始化k个中心点 2.将每个实例分配到与其最近的中心点,开成k个类 3.更新中心点,计算每个类的平均中心点 4.直到中心点不再变化或变化不大或达到迭代 ...