多态性的前提:extends继承或者implements实现

继承与多态:

定义:同一个操作被不同类型对象调用时可能产生不同 的行为

解释:如果一个类有很多子类,并且这些子类都重写了父类中的某个方法,把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,那么这个上转型对象在调用这个实例方法就可能有多种形态,因为不同的子类在重写父类的实例方法时可能产生不同的行为。

对象的多态性:一个对象拥有多种形态

多态的格式和使用: 父类名称 对象名=new 子类名称();(左小右大)

接口名称 对象名=new 实现类名称();

多态 访问成员方法:

调用方法时,如果子类有父类也有,优先使用子类的方法,如果只有父类有,那么使用父类的方法

;如果只有子类有,那么会出错(超出范围)

多态访问直接访问成员变量:

子类初始化父类后,父对象访问的变量都是父对象的变量,如果没有向上找

多态的好处:

对象的向上转型:

上转型对象:

B是A的子类或者间接子类,用子类B创建一个对象,并把这个对象的引用放到类A声明的对象中,

那么对象a就是子类b的上转型对象。

写法:父类名称 对象名=new 子类名称();

含义:右侧创建一个子类对象,把它当做父类来看待使用

特点:向上转型一定是安全的

(1)不能通过上转型对象操作子类声明定义的成员变量(失掉了这部分属性),不能使用子类声明定义的方法(失掉了一些功能)

(2)上转型对象可以代替子类去调用子类重写的实例方法。如果子类重写了父类的某个实例方法后,子类对象的上转型对象调用这个方法时,一定是调用了这个重写的方法

(3)上转型对象可以调用子类继承的成员变量和隐藏的成员变量

理解:

上转型对象不是父类创建的对象,而是子类对象的简化,它不关心子类新增的功能,只关心子类继承和重写的功能。

对象的向下转型:

格式:子类名称 对象名=(子类名称)父类对象;

含义:将父类对象,【还原】 成为本来的子类对象

进行向下转型的时候一定要用instanceof进行类型判断,否则会出现异常

格式: 对象 instanceof 类名称:

将会得到一个boolean值结果,判断前面的对象能不能当做后面类型的实例

【java笔记】继承与多态相关推荐

  1. Java:继承和多态实验(以狗,猫,青蛙为)

    Java:继承和多态实验(以狗,猫,青蛙为例) 问题描述: 问题分析: 难点分析: 类关系图: 阶段划分: 第一阶段: 第二阶段: 第三阶段: 运行效果: 总结: 问题描述: 狗生活在陆地上(是一种陆 ...

  2. java多态ppt_轻松学Java之继承与多态PPT课件.pptx

    轻松学Java之继承与多态PPT课件.pptx 第8章 继承与多态,在前面我们已经了解了类的基本使用方法.对于面向对象的程序而言,它的精华在于类的继承可以以既有的类为基础,进而派生出新的类.通过这种方 ...

  3. Java利用继承和多态来求矩形、正方形和圆形的面积与周长

    题目 Java利用继承和多态来求矩形.正方形和圆形的面积与周长 import static java.lang.Math.PI;/*** @Author Ziph* @date 2020/2/20* ...

  4. 【Java】继承、多态、接口

    Java中的继承.多态和接口 1.用类比引入继承概念 众所周知,Java是一门面向对象的语言.如果我们要设计多种多样的交通工具,比如汽车.火车.飞机,虽然这些工具功能不同.形态不同,但是他们很多的基本 ...

  5. 【Java基础】Java的继承和多态

    文章目录 一.java类的封装 二.java简单的继承及单继承和多继承的区别 1.简单继承 2.单继承 三.java的多态 1.多态的好处 2.多态的弊端 四.java的抽象类 五.java的接口 1 ...

  6. java面向对象--继承与多态

    1.1自定义包语法: package <包名> 注意:声明一个包的语句必须写在类中的第一行. 如:创建hero类,将该类存放到com.java.oriented.dato.figure包中 ...

  7. java 利用继承和多态设计三角形,圆矩形

    //郑州轻工业大学 //题号:实验三 第二题 //题目:利用继承和多态设计图形类.要求如下: (1)三角形属性为三个顶点坐标,矩形属性为其左上角和右下角两点坐标,圆为圆心和圆上任一点的坐标. (2)三 ...

  8. Java学习笔记--继承和多态(下)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  9. java不用抽象类实现多态_原来你是这样的JAVA[03]-继承、多态、抽象类

    一.继承 Java中的继承使用关键字extends ,跟C#的语法略有差别. 1.子类构造器 java会自动在子类的构造器中插入对父类构造器的调用,也就是说在子类可以访问父类之前已经完成了父类的初始化 ...

  10. Java学习——继承和多态

    1. 在Java中,一个类只能继承一个类称为单继承.但一个超类可以派生出多个子类,从未形成具有树形关系的结构.一个类只能继承一个父类,称为单继承. 2. 子类继承父类的成员变量,除构造方法之外的成员方 ...

最新文章

  1. JAVA并发之多线程基础(2)
  2. CouchDB 简单HTTP接口使用说明
  3. C++中的hash_map和map的区别
  4. 《分布式操作系统》知识点(15~21)三
  5. Android使用缓存优化ListView
  6. 高通推出骁龙870 5G移动平台:7nm工艺 摩托罗拉首发
  7. 加速ASP.NET Core WEB API应用程序——第1部分
  8. 微服务get请求条用_SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
  9. keil uvisoin软件出现闪退和打开工程以前添加的c文件上面出现黄色感叹号
  10. 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
  11. 微信小程序-跟学笔记
  12. 文本文档怎么改格式html,设置电脑更改文本文档格式,怎么更改文本文档格式-
  13. Protues仿真 8X8 LED点阵
  14. 18年怎么将win7升级到win10教程
  15. 使用FTP服务器进行文件上传与下载
  16. 钉钉考勤与企业系统对接
  17. TeX 家族(TeX, XeTeX, LuaTeX,XeLaTeX …看完这篇就懂了)
  18. kubernetes continually evict pod when node's inode exhausted
  19. ASM - TreeApi Method组件和接口简介
  20. Window 下我的电脑“管理”打不开解决方案

热门文章

  1. 硬盘引导扇区、多分区图、不通硬盘的LINUX逻辑分区数量
  2. Bailian4033 铺地毯【暴力】
  3. JVM 内存管理、自带性能监测调优工具 (jstack、jstat)及 JVM GC 调优
  4. pandas 学习(五)—— datetime(日期)
  5. RStudio 的使用
  6. 一题多解(五) —— topK(数组中第 k 大/小的数)
  7. #ifdef 的使用
  8. 部分和(partial sum)在算法求解中的作用
  9. 神奇的国际日期变更线
  10. 工具的使用 —— windows 实用工具