当前位置:首页 > 编程问答 >

JAVA中的多态与重载有什么区别

时间:已被938人关注

码农之家
JAVA中多态与重载区别是什么

2小时33分钟前回答

多态是建立在重写的基础之上的,是类与类之间的关系,是发生在不同的类之间的,子类重写父类的方法。实现不同的子类,不同的实现形态。

多态有3个条件
1:继承
2:重写(重写父类继承的方法)
3:父类引用指向子类对象

而重载是类的内部的方法构型上的不同,是发生在同一个类里面的。同一个函数名称,参数不同的多个方法,实现同一类型的功能。

1、java中多态的现主要就是重载、重写。
重载就是同一个类中,方法名相同,可方法所带的参数的类型 或者个数不同,一般都是构造方法的重载。通俗一点就比如说:同一个碗(相当与方法名),可以盛 饭,水,牛奶 (如同参数)。
重写 一般是父类跟子类的关系,子类 把 父类的方法覆盖了。彻底的变了。

2、重载函数名相同参数个数不同。
多态,多个子类用不同的代码覆盖同样父类的同一个方法。当多种子类的实例赋给父类引用时,当调用多个这个父类引用的方法时,看名字是同一个方法,执行的代码确实多种多样的这就叫多态。
其实要理解OO的概念实质,最好的方式是学C++。

3、 在JAVA中,多态性主要表现在如下两个方面:
(1)方法重载.通常指在同一个类中,相同的方法名对应着不同的方法实现,但是方法的参数不同.
(2)成员覆盖.通常指在不同类(父类和子类)中,允许有相同的变量名,但是数据类型不同;也允许有相同的方法名,但是对应的方法实现不同.
  在重载的情况下,同一类中具有相同的名字的方法.如何选择它的方法体呢?不能使用类名来区分,通常采用不同的方法形参表,区分重载要求形参在类型,个数和顺序的不同,在定义重载方法时,应在方法的形参的类型,个数和顺序有所不同,以便在选择时能够区别开来.
  在覆盖的情况下,同名的方法存在于不同的类中,在调用方法只要指明其方法所归属的类名就可以了.

已被372人点赞
参考资料
Java机器学习
Java机器学习 超清中文版

利用Java机器学习常见库设计、构建、部署你自己的机器学习应用,包含机器学习基本概念、原理,Weka、Mahout、Spark等常见机器学习库的用法

立即下载
JavaScript启示录
JavaScript启示录 原书完整版

《JavaScript启示录》无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现。《JavaScript启示录》意图通过考察原生JavaScript对象和不同环境对原生对象的支持和细微差别。

立即下载
软件设计模式:Java版
软件设计模式:Java版 超清版

程细柱编著的《 软件设计模式 》从面向对象程序设计的7个基本原则出发,用浅显易懂、可视化的UML建模语言逐一介绍GoF的23种经典设计模式。全书共9章,内容包括设计模式基础、创建型设计

立即下载
JavaScript数据可视化编程
JavaScript数据可视化编程 扫描版 立即下载
深度学习:Java语言实现
深度学习:Java语言实现 原版扫描版 立即下载
Java编程思想
Java编程思想 影印第4版

《 计算机科学丛书:Java编程思想(第4版) 》获得了全世界程序猿的普遍称赞,即便是枯燥的定义,在BruceEckel的文本感染力和小而立即的程序编写实例眼前也会解决于无形中。从Java的基本英

立即下载
软件开发综合实践指导教程:JAVA WEB应用
软件开发综合实践指导教程:JAVA WEB应用 高清版

Java Web应用技术是当今最主流的Web程序开发技术之一。目前无论是高校的计算机专业,还是IT培训学校都将Java Web应用技术作为教学内容之一,这对于培养学生的计算机应用能力具有重要的意义

立即下载

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com