【java笔记】继承与多态
多态性的前提:extends继承或者implements实现
继承与多态:
定义:同一个操作被不同类型对象调用时可能产生不同 的行为
解释:如果一个类有很多子类,并且这些子类都重写了父类中的某个方法,把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,那么这个上转型对象在调用这个实例方法就可能有多种形态,因为不同的子类在重写父类的实例方法时可能产生不同的行为。
对象的多态性:一个对象拥有多种形态
多态的格式和使用: 父类名称 对象名=new 子类名称();(左小右大)
接口名称 对象名=new 实现类名称();
多态 访问成员方法:
调用方法时,如果子类有父类也有,优先使用子类的方法,如果只有父类有,那么使用父类的方法
;如果只有子类有,那么会出错(超出范围)
多态访问直接访问成员变量:
子类初始化父类后,父对象访问的变量都是父对象的变量,如果没有向上找
多态的好处:
对象的向上转型:
上转型对象:
B是A的子类或者间接子类,用子类B创建一个对象,并把这个对象的引用放到类A声明的对象中,
那么对象a就是子类b的上转型对象。
写法:父类名称 对象名=new 子类名称();
含义:右侧创建一个子类对象,把它当做父类来看待使用
特点:向上转型一定是安全的
(1)不能通过上转型对象操作子类声明定义的成员变量(失掉了这部分属性),不能使用子类声明定义的方法(失掉了一些功能)
(2)上转型对象可以代替子类去调用子类重写的实例方法。如果子类重写了父类的某个实例方法后,子类对象的上转型对象调用这个方法时,一定是调用了这个重写的方法
(3)上转型对象可以调用子类继承的成员变量和隐藏的成员变量
理解:
上转型对象不是父类创建的对象,而是子类对象的简化,它不关心子类新增的功能,只关心子类继承和重写的功能。
对象的向下转型:
格式:子类名称 对象名=(子类名称)父类对象;
含义:将父类对象,【还原】 成为本来的子类对象
进行向下转型的时候一定要用instanceof进行类型判断,否则会出现异常
格式: 对象 instanceof 类名称:
将会得到一个boolean值结果,判断前面的对象能不能当做后面类型的实例
【java笔记】继承与多态相关推荐
- Java:继承和多态实验(以狗,猫,青蛙为)
Java:继承和多态实验(以狗,猫,青蛙为例) 问题描述: 问题分析: 难点分析: 类关系图: 阶段划分: 第一阶段: 第二阶段: 第三阶段: 运行效果: 总结: 问题描述: 狗生活在陆地上(是一种陆 ...
- java多态ppt_轻松学Java之继承与多态PPT课件.pptx
轻松学Java之继承与多态PPT课件.pptx 第8章 继承与多态,在前面我们已经了解了类的基本使用方法.对于面向对象的程序而言,它的精华在于类的继承可以以既有的类为基础,进而派生出新的类.通过这种方 ...
- Java利用继承和多态来求矩形、正方形和圆形的面积与周长
题目 Java利用继承和多态来求矩形.正方形和圆形的面积与周长 import static java.lang.Math.PI;/*** @Author Ziph* @date 2020/2/20* ...
- 【Java】继承、多态、接口
Java中的继承.多态和接口 1.用类比引入继承概念 众所周知,Java是一门面向对象的语言.如果我们要设计多种多样的交通工具,比如汽车.火车.飞机,虽然这些工具功能不同.形态不同,但是他们很多的基本 ...
- 【Java基础】Java的继承和多态
文章目录 一.java类的封装 二.java简单的继承及单继承和多继承的区别 1.简单继承 2.单继承 三.java的多态 1.多态的好处 2.多态的弊端 四.java的抽象类 五.java的接口 1 ...
- java面向对象--继承与多态
1.1自定义包语法: package <包名> 注意:声明一个包的语句必须写在类中的第一行. 如:创建hero类,将该类存放到com.java.oriented.dato.figure包中 ...
- java 利用继承和多态设计三角形,圆矩形
//郑州轻工业大学 //题号:实验三 第二题 //题目:利用继承和多态设计图形类.要求如下: (1)三角形属性为三个顶点坐标,矩形属性为其左上角和右下角两点坐标,圆为圆心和圆上任一点的坐标. (2)三 ...
- Java学习笔记--继承和多态(下)
1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...
- java不用抽象类实现多态_原来你是这样的JAVA[03]-继承、多态、抽象类
一.继承 Java中的继承使用关键字extends ,跟C#的语法略有差别. 1.子类构造器 java会自动在子类的构造器中插入对父类构造器的调用,也就是说在子类可以访问父类之前已经完成了父类的初始化 ...
- Java学习——继承和多态
1. 在Java中,一个类只能继承一个类称为单继承.但一个超类可以派生出多个子类,从未形成具有树形关系的结构.一个类只能继承一个父类,称为单继承. 2. 子类继承父类的成员变量,除构造方法之外的成员方 ...
最新文章
- JAVA并发之多线程基础(2)
- CouchDB 简单HTTP接口使用说明
- C++中的hash_map和map的区别
- 《分布式操作系统》知识点(15~21)三
- Android使用缓存优化ListView
- 高通推出骁龙870 5G移动平台:7nm工艺 摩托罗拉首发
- 加速ASP.NET Core WEB API应用程序——第1部分
- 微服务get请求条用_SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
- keil uvisoin软件出现闪退和打开工程以前添加的c文件上面出现黄色感叹号
- 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
- 微信小程序-跟学笔记
- 文本文档怎么改格式html,设置电脑更改文本文档格式,怎么更改文本文档格式-
- Protues仿真 8X8 LED点阵
- 18年怎么将win7升级到win10教程
- 使用FTP服务器进行文件上传与下载
- 钉钉考勤与企业系统对接
- TeX 家族(TeX, XeTeX, LuaTeX,XeLaTeX …看完这篇就懂了)
- kubernetes continually evict pod when node's inode exhausted
- ASM - TreeApi Method组件和接口简介
- Window 下我的电脑“管理”打不开解决方案