thinking in java3中的多态

People are often confused by other, non-object-oriented features of Java, like method overloading, which are sometimes presented as object-oriented. Don't be fooled: If it isn't late binding, it isn't polymorphism

按文面翻译

人们总是被java的另一种非面向对象的特性所困惑,就像方法重载,有时候它以面向对象而存在,请不要犯傻,如果没有后期绑定(也就是运行期的动态绑定),它就不是多态.

所以,这段话要表达的意思就是说,多态要有动态绑定,否则就不是多态,方法重载也不是多态(因为方法重载是编译期决定好的,没有后期也就是运行期的动态绑定)

当满足这三个条件 1.有继承  2. 有重写  3. 要有父类引用指向子类对象

多态:就是指相同的事物的不同状态,比如:水。水可以有三种状态:

气体、液体和固体。那么在JAVA中的多态也可以理解成这个意思,就是:

将父对象设置成为和一个或多个它的子对象相等的技术,

比如Parent=Child;

多态性使得能够利用同一类(父类)引用不同类的对象,

以及根据所引用对象的不同,以不同的方式执行相同的操作。

多态实现包括两种方式:重载和重写

例如:Animal a = new Tiger(); 这是一个老话题了,呵呵……

父类引用指向子类对象,Animal类中包含一个eat()方法,而Tiger类继承自

Animal类,如果子类重写了父类的eat()方法,则调用的时候,就可以按照子类

的形式调用,本质上是父类的方法,但是子类重写之后,就成了另一种方式,这就是多态。

以上就是小编为大家带来的浅谈java多态的实现主要体现在哪些方面的全部内容了,希望对大家有所帮助,多多支持服务器之家~

java多态主要体现在哪方面,浅谈java多态的实现主要体现在哪些方面相关推荐

  1. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  2. java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...

  3. java程序的装载与检查_浅谈Java类型装载、连接与初始化

    类型装载.连接与初始化 Java虚拟机通过装载.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.其中装载就是把二进制形式的Java class文件读入Java虚拟机中去;连接 ...

  4. java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字

    合法标识符 Java语言中,对于变量,常量,函数,语句块均有名字,我们统统称之为Java标识符.标识符是用来给类.对象.方法.变量.接口和自定义数据类型命名的. 组成:Java标识符由数字,字母和下划 ...

  5. java中的多态与继承_【Java学习笔记之十六】浅谈Java中的继承与多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  6. java线程池和线程实例化_浅谈Java 线程池原理及使用方式

    一.简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用.java中有线程池.连接池等等.线程池就是在系统启动或者实例化池时创建一些空闲的线程,等 ...

  7. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    Java中的Set,List,Map的区别,对JAVA的集合的理解是相对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一 ...

  8. java为什么要分代回收_浅谈Java堆内存分代回收

    1.概述 与C++不同的是, 在Java中我们无需关心对象占用空间的释放, 这主要得益于Java中的垃圾处理器(简称GC)帮助我们自动的进行对象占用空间的释放. 下面我们带着几个问题来学习: 堆内存是 ...

  9. java final类为什么不能继承_浅谈Java之终止继承:Final类和Fianl方法

    前言 关键字Final不仅可以用来修饰变量,而且对类及其方法的继承也有很大的影响,本文将从类与方法两个方面介绍final关键字的功能. Final类 当关键字final用来修饰类时,其含义是该类不能再 ...

最新文章

  1. JAVA_OA管理系统(三)番外篇:Myeclipse导入Spring源码包
  2. Open images from USB camera on linux using V4L2 with OpenCV
  3. 鸿蒙os2.0公测结束了,鸿蒙OS2.0系统公测版发布时间-鸿蒙OS2.0系统公测版适配机型推荐...
  4. 用java打出矩形阵型的数字_java输出数字发散矩形
  5. python基本运算符
  6. 解压大于4g的文件_4G显卡“到期”,ETH2.0即将到来,以太坊矿工何去何从?
  7. 无法启动Windows安全中心服务怎么办
  8. kubernetes 的 滚动升级和回滚(rollout)
  9. linux sed去除重复,删除文本中的重复行(sort+uniq/awk/sed)
  10. 量子笔记:单比特量子门、泡利矩阵
  11. atcoder abc242 c题 1111gal password
  12. 测试基础 之 黑盒测试方法
  13. 前端开发问题——css设置背景样式效果无法显现
  14. Unity 生成原始LUT用于外部校色相机不透明物体截图
  15. Sci-hub文献下载器
  16. day3-基础数据类型(int、bool、str)
  17. python 泛型_python 泛型注释的不理解?
  18. 2019-2-14 if条件判断语句+车费计算器
  19. 斯图金是如何发明电磁铁的?
  20. 整机性能测试软件,整机性能测试及评测总结_一体电脑评测-中关村在线

热门文章

  1. 深度linux跟windows,不服跑个分:深度操作系统Deepin与Win10性能对比测试
  2. 12.04怎样查看更改屏幕显示的刷新频率
  3. 【ROS2原理14】.msg / .srv / .action文件的做法
  4. 机房对决(双人小游戏)
  5. TSF(Text Service Framework)WIN7下的输入法框架简介
  6. JS正则表达式【1】
  7. HTML零基础入门之标签、属性选择器、元素选择器
  8. 如何选择考研数学资料?最全考研数学复习资料推荐
  9. Linux下Anaconda的安装及使用教程
  10. 最近很多笔试的基础题,小汇总下