多态可以理解为同一个操作在不同对象上会有不同的表现

比如在谷歌浏览器上按F1会弹出谷歌的帮助页面。在windows桌面按F1会弹出windows的帮助页面。

多态存在的三个必要条件:

继承

重写

父类的引用指向子类的对象

还是以之前Player类为例

public class Player {public int number;  //号码public int score;   //得分public String position; //司职public String name; //姓名public Player(String club){System.out.println("俱乐部名称:"+club);}public void playBall(){System.out.println("姓名:"+this.name);System.out.println("号码:"+this.number);System.out.println("得分:"+this.score);System.out.println("司职:"+this.position);}public static void main(String[] args){Player p1 = new FootBallPlayer();p1.name = "齐达内";p1.playBall();Player p2 = new BasketBallPlayer();p2.name = "乔丹";p2.playBall();}
}

public class FootBallPlayer extends Player {public FootBallPlayer(){super("足球俱乐部");System.out.println("我是FootBallPlayer");}public void playBall(){System.out.println("我是一名足球运动员,我的名字叫"+this.name+",娱乐不能考手");}}

public class BasketBallPlayer extends Player{public BasketBallPlayer(){super("篮球俱乐部");System.out.println("我是BasketBallPlayer");}public void playBall(){System.out.println("我是一名篮球运动员,我叫"+this.name+",我从来不上脚");}public void helloPlayer(){System.out.println("Hello"+this.name);super.playBall();System.out.println("你好"+this.name);}
}

可以看到通过父类的变量p1,p2来接收两个子类的对象,这两个对象调用playBall()方法时,是调用各自子类的方法。而不是父类的方法。

转载于:https://www.cnblogs.com/myal/p/11076963.html

java学习笔记14-多态相关推荐

  1. thinking in java 学习笔记 14 类型信息

    第十四章 类型信息 尼玛,刚刚看完了亚冠,恒大这样都被连扳3球,尼玛的垃圾孙祥,恨死了那个全北现代 好吧,回到学习上 运行时类型信息使得你可以再程序运行时发现和使用类型信息 本章讨论的是java如何让 ...

  2. Java学习笔记14

    Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看源码中clone ...

  3. Java学习笔记_多态/内部类

    多态的格式与使用 代码当中体现多态性,其实就是一句话,父类引用指向子类对象 格式: 父类名称 对象名 = new 子类名称(); 或者 接口名称 对象名 = new 实现类名称(); public c ...

  4. Java学习笔记14(接口+工厂模式)

    文章目录 接口 接口的特点: **为什么要接口** 工厂模式 接口 Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值的定义的集合. 从本质上讲 ...

  5. java笔记冯佳微盘,JAVA学习笔记14 - osc_vsdge2u3的个人空间 - OSCHINA - 中文开源技术交流社区...

    01(Map集合概述和特点) * A:Map接口概述 * 查看API可以知道: * 将键映射到值的对象 * 一个映射不能包含重复的键 * 每个键最多只能映射到一个值 * B:Map接口和Collect ...

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

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

  7. 尚学堂Java学习笔记

    尚学堂Java学习笔记 ============================ J2SDK&JRE J2SDK:JAVA2 SOFTWARE DEVELOPMENT KIT JRE:JAVA ...

  8. 郑志远的java学习笔记

    郑志远的java学习笔记 郑志远    CCB 1         Java起源 略 2         Java语言概述 1.面向对象编程的3个原则:封装(encapsulation).继承(inh ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  10. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

最新文章

  1. JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片...
  2. window和linux下遍历目录的比较
  3. Window_Open详解
  4. 全球首个自适应机械臂:精准抗干扰,斯坦福华人团队打造
  5. linux mint cinnamon_最佳 Linux 发行版汇总
  6. jQuery操作cookie
  7. mysql使用已有的数据库_使用SQL操作MySQL数据库
  8. UVA10570 Meeting with Aliens【数学计算】
  9. linux操作系统说课稿,信息技术《揭开LINUX的神秘面纱》教案范文
  10. DOTA中所有被动技能
  11. qt quick-QML虚拟软键盘V2版本(手机键盘弹出机制)-支持换肤、动态加载移除语言
  12. 插件目标[置顶] Maven自定义绑定
  13. 快速了解云数据库RDS
  14. iOS开发:获取WiFi名称(解决iOS12.0以上系统不能正常获取WiFi名称的方法)
  15. mysql的设置参数中max_allowed_packet
  16. vue基础--vue的生命周期
  17. 2021年从事Linux运维云计算前景如何?
  18. 经典正则表达式 (“转自清清月儿”)
  19. gnome菜单图标显示
  20. 华文慕课北大操作系统陈向群第五章课后习题解析

热门文章

  1. 【数学建模】基于matlab细胞传输模型实现交通流【含Matlab源码 376期】
  2. 【物理应用】基于matlab Q学习无线体域网路由方法【含Matlab源码 264期】
  3. 【数据分析】基于matlab伊藤微分方程布朗运动分析【含Matlab源码 261期】
  4. os.path.exists判断文件是否存在
  5. 数论 扩展欧几里德算法
  6. join()方法与CSV格式文件
  7. 称重仪表显示ol怎么解决_电脑显示器无信号怎么解决呢?
  8. 县级外业调查及举证软件_省三调办举办全省第三次全国国土调查统一时点更新省级技术培训会...
  9. php单例模式详解,PHP 单例模式解析和实战
  10. centos7 防火墙_【Linux简单实用小命令001】CentOS 7、8的防火墙端口开放