前言

前面讲了面向对象的两个特性,封装和继承。本文将面向对象的最后一个特性多态,而多态是在继承的基础上存在的。

Java的引用变量有两个类型:一个是编译时的类型,另一个是运行时的类型。编译时的类型由声明变量时所使用的类型决定,运行时类型由实际赋给变量的对象决定。如果编译时类型和运行时类型不一致,就会出现多态。

至于什么是编译时类型和运行时类型,请继续往下看。

一.多态性

先来看一段程序:

class Bird{    public void myInfo(){        System.out.println("我是鸟");    }}class Ostrich extends Bird{    public void myInfo(){        System.out.println("我是鸵鸟");    }        public static void main(String[] args){        Bird bird = new Bird();        bird.myInfo();//输出:“我是鸟”        Ostrich ostrich = new Ostrich();        ostrich.myInfo();//输出:“我是鸵鸟”        Bird oB

Java高阶部分知识点汇总(四)-继承与多态相关推荐

  1. Java高阶部分知识点汇总(三)-内存空间的引用

    前言 在前面给大家展示的代码中,有这样一行代码 Student stu = new Student(); 这行代码创建了一个Student对象,这个对象被赋给stu变量.今天我们就来好好学习一下这行代 ...

  2. Java高阶部分知识点汇总(三)-基本类型的包装类详讲

    前言 Java语言为8个基本数据类型都提供了对应得包装类,通过8个包装类可以把8个基本数据类型的值包装成对象使用,JDK1.5提供了自动装箱和自动拆箱功能,也就是基本类型和对应包装类可以直接互相赋值使 ...

  3. Java高阶部分知识点汇总(二)-封装与隐藏详讲

    前言 在前面程序中,经常会出现通过某个对象的直接访问其属性的情况,这会出现很多潜在问题,例如前面我们定义过的学生类Student,我可以通过其实例对象直接访问到实例的age属性,并赋值,这在Java语 ...

  4. Java高阶部分知识点汇总(一)- 成员变量与局部变量详讲

    前言 在Java语言中,根据定义变量的位置不同,可以将变量分为两大类:成员变量与局部变量.而两者的运行机制也存在着较大的差异,本篇文章将详细介绍这两种变量的运行差异. 一.成员变量 成员变量指的是类范 ...

  5. linux高可用小知识点汇总-行云管家

    不少运维小伙伴对于linux高可用相关知识不是很了解,今天我们小编就给大家汇总了一些,希望可以加深大家的了解.仅供参考哦! linux高可用小知识点汇总-行云管家 一.Linux是什么系统? [回答] ...

  6. java高并发与多线程汇总(一):基础知识(上)

    java高并发与多线程汇总 往期文章推荐:   java高并发与多线程汇总(一):基础知识(上)   java常见面试考点(四十二):序列化与反序列化   java常见面试考点(四十三):泛型   j ...

  7. Java高阶代码_Java高阶语法---Volatile

    背景:听说Volatile Java高阶语法亦是挺进BAT的必经之路. Volatile: volatile同步机制又涉及Java内存模型中的可见性.原子性和有序性,恶补基础一波. 可见性: 可见性简 ...

  8. Java高阶语法---final

    背景:听说final Java高阶语法是挺进BAT必经之路. final: final关键字顾名思义就是最终不可改变的. 1.含义:final可以声明成员变量.方法.类和本地变量:一旦将引用声明为fi ...

  9. [react] 举例说明什么是高阶组件(HOC)的反向继承

    [react] 举例说明什么是高阶组件(HOC)的反向继承 import React from 'react';const hoc = (WrappedComponent) => {// 集成需 ...

最新文章

  1. 北斗定位2.0版来了!普通人手机可用,全免费!
  2. 机器学习也可以在线做!
  3. 原创:PHP乱码怎么办?五种方法彻底解决PHP乱码问题
  4. OSO.EXE病毒专杀工具
  5. 敏捷开发般若敏捷系列之四:如何推广敏捷(上)(无我,无人,无众生)
  6. php 同步退出,phpcms phpsso不能同步退出怎么办
  7. PS中的Workflow的创建
  8. MTRR内存类型范围寄存器
  9. Java扫雷游戏的设计与实现毕业设计论文
  10. 以太网帧的目的地址从哪里来?
  11. lower_bound、upper_bound、equal_range详解
  12. 重装Win10系统其他盘的东西还在吗?
  13. 无需设置路由器,无需公网ip 实现永久免费内网穿透
  14. OpenCV的viz库学习(一)
  15. 如何使用ANT在命令行进行编译和测试
  16. apache SSI
  17. Java 多线程(超详细)
  18. 掌握电商后台设计,这一篇足矣
  19. Python分析香港26281套在售二手房数据!寸土寸金啊!
  20. 2022年全球及中国智能购物车行业头部企业市场占有率及排名调研报告

热门文章

  1. (进阶篇)Cookie与 Session使用详解
  2. webpack文章(持续更新)
  3. openstack之neutron linuxbridge + vlan组网
  4. VS2008资源问题解决方法
  5. 移动界面控件Essential Studio for Mobile MVC图表控件解析
  6. HDU 4288 Coder [线段树]
  7. java超级简单贪吃蛇_java实现简易贪吃蛇游戏
  8. mapinfo制作地图_用QGIS代替Mapinfo软件
  9. cad打开图纸流程图_如何一键打开超大CAD图纸,进行CAD快速看图?
  10. java array 元素的位置_Java常见面试题 非常实用「个人经验」