如果有两个类,一个类是Person类是父类,然后有一个类是子类Student类。

Person p=new Student();

那么请问上面的这句话,在干什么?

这很明显是一个里氏转换,对吧。但是为什么要用里氏转换,你明明可以写成下面这个东西用。想用谁的方法就实例化谁

Person p =new Person();
Student S =new Student();

回到第一句话上,这句话是里氏转换,如果父类中,有一个方法是Say。子类要继承父类的方法,也是Say。然而我们上面是实例化了一个子类的对象,然后让他以父类展示出来了。那么,我如果p点方法Say,给我的一定是父类的方法,而不是子类的。如果我想用调用子类的Say方法怎么办。

多态是什么呢?

就是让一个对象展示多种状态,就是让p这个对象展示多中状态,假如我们写多个子类,写个Teacher,再写一个Driver,然后他们有不同的Say方法,那么,我通过对Person父类的Say方法重写,Student,Teacher,Driver,这个三个子类的Say方法。那么这句话就可以达到多态,以父类的对象展示,然后把不同的子类对象赋值给父类P。就实现了多态。

实现多态的三种体现就是,重写父类的方法,抽象类,接口。

多态Person p=new Student();相关推荐

  1. C++类的使用(五)—— 多态

    时隔数月,我决定把这个系列继续写下去. 多态,顾名思义,就是多种形态,多种类型. 那就奇怪了,难不成可以把一个类直接转成另一个类? 错,其实多态是指从一个继承系里的类型互相转换. 先看代码事例 #in ...

  2. C++ 面向对象(二)多态 : 虚函数、多态原理、抽象类、虚函数表、继承与虚函数表

    目录 多态 多态的概念 多态的构成条件 虚函数 虚函数的重写 协变(返回值不同) 析构函数的重写(函数名不同) final和override final override 重载, 重写, 重定义对比 ...

  3. Javase多态(对多态的理解、多态的体现)

    前言 刚开始学Java的时候对多态这个概念一直没弄太明白,随着后面的学习无意中都在用着多态,又看了一些文章决定整理一下! 参考文章: https://www.cnblogs.com/zhai1997/ ...

  4. java学习笔记day09 final、多态、抽象类、接口

    java学习笔记day09 思维导图 final . 多态 . 抽象类 . 接口 (都很重要) 一.final 二.多态 多态中的成员访问特点⭐ [P237] 多态的好处 [P239] 多态的弊端 向 ...

  5. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  6. JAVA封装|继承|多态

    一,继承:面向对象的三大继承之一 子类 | 派生类 : 继承父类的类 定义子类独有的内容 父类 | 超类 | 基类 : 被子类继承的类 所有子类的共性 1,Q&A 1.为什么要使用继承 ? 为 ...

  7. JavaScript高级部分概念用法

    一.执行上下文 也称为可执行代码和执行上下文 执行代码:1.全局代码 2.函数代码 3.eval代码 eval("var a = 200;console.log(a)") 执行上下 ...

  8. Java基础之抽象类

    /* 1.抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类. 抽象类的特点:A: ...

  9. 狂神说Java---java学习笔记(图片有些问题,有时间将图片从电脑上传上来)

    目录 Markdown学习 标题 字体 引用 分割线 图片 超链接 列表 有序列表 无序列表 表格 代码 发布markdown语法博客 什么是计算机 介绍 计算机硬件 装机 冯诺依曼体系结构(计算机之 ...

最新文章

  1. OpenCV图像旋转的原理与技巧
  2. Axure RP 第一部分
  3. 计算机组成原理主存储器知识点,【考研】2020考研:计算机组成原理知识点主存储器与CPU的连接...
  4. UA STAT687 线性模型理论I 线性模型概述
  5. String案例 获取一个字符串在另一个字符串中出现的次数(两种方法)
  6. Bootstrap组件_巨幕,页头,缩略图
  7. python中函数参数_Python函数的参数
  8. C语言(CED)C语言中双引号和单引号的区别
  9. 动手学深度学习(PyTorch实现)(三)--过拟合与欠拟合
  10. 区块链app源码_区块链app商城系统开发适用于哪些企业
  11. Heritrix 3.1.0 源码解析(三十四)
  12. android app银联支付,android app 快速接入银联支付流程(android studio版)
  13. 人工智能产品经理知识体系和学习计划
  14. 智安网络丨浅谈信息系统终止时如何确保信息资产的安全
  15. Linux CreateRepo创建Repomd (xml-rpm-metadata)存储库
  16. 什么是MBTI,16种人格类型详解
  17. Python操作函数
  18. 微信记账小程序源码(开源)
  19. 偷偷学K3S,然后惊呆所有人
  20. pyecharts源码解读(10)渲染包render之templates目录:渲染模板

热门文章

  1. 中兴和思科的acl配置
  2. ZT 互联网——降级论
  3. JDK 11.0.2 的下载安装教程
  4. python浅学(1)大体介绍
  5. WPF的提前结账页面
  6. 网络安全中英文术语总结
  7. 来自程序猿的爱心表白——贝塞尔曲线讲解及实例
  8. 字节跳动-2020秋招-笔试题剖析【5道算法题】
  9. python接收弹幕_Python爬虫自动化爬取b站实时弹幕实例方法
  10. isinstance()函数