iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈java中的重载和重写的区别
  • 280
分享到

浅谈java中的重载和重写的区别

2024-04-02 19:04:59 280人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.重载小结:2.重写小结:总结1.重载 重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同 (参数类型不同、参数个数不同甚至是参数顺序不同) 重载对返回类型没有要

1.重载

重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同

(参数类型不同、参数个数不同甚至是参数顺序不同)

重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载。

例如


package HelloWorld;
public class Zuoye {
	public static void main(String[] args) {
		Zuoye z = new Zuoye();
		z.fangfa1();
		z.fangfa1("张旭");
	}
	public void fangfa1() {
		System.out.println("方法1");
	}
	public void fangfa1(String name) {
		System.out.println("也是方法1,不过有参数"+ name);
	}
}

小结:

1.重载是一个类中多态性的一种表现

2.重载是在一个类中,具有相同名称不同参数列表的方法

3.重载不能根据返回类型的相同或者不同来区分重载函数。

2.重写

1.重写是指在不同类中,将父类的方法在子类中重新写一遍,子类继承了父类原有的方法,但有时又不想继承父类原有一模一样的方法,所以就在返回类型,方法名,参数列表相同的情况下,对方法体进行修改进行重写,这就是重写。但注意的是 子类的访问修饰符不能比父类的更严格(意思就是父类的访问修饰符要更加 严谨,权限更少,父亲严格)

例如


package HelloWorld;
public class Father {
     public static void main(String[] args) {
    	    Son s = new Son();
    	    s.fangfa();
	}
	public void fangfa() {
		System.out.println("我是爸爸的方法");
	}
}
class Son extends Father {
	public void fangfa() {
		System.out.println("我是儿子的方法");
	}
}

返回结果是

小结:

1. 发生在父类和子类关系之间

2. 他们的返回类型,方法名,列表参数相同 方法体不同。

3.子类不能比父类更严格 ,(父亲比儿子严格)。

4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

访问修饰符图

private 最严格。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

public : 对所有类可见。使用对象:类、接口、变量、方法

总结重载和重写的区别:

答:方法的重载和重写都是实现多态的方式 ,区别在于重载实现的是编译时的多态性,重写实现的运行时的多态性。

重载是在发生在同一个类中,他们有相同的方法名 ,但有不同的参数列表,重载对返回类型没有特别要求,不能根据返回类型来进行区分 。

而重写发生在不同类中,发生在子类和父类之间的,重写要求子类与父类的被重写方法具有相同的返回类型,名称和参数列表。 但他们的方法体要不同。 同时,父类相较于子类,他的访问修饰符会更加严格,即访问范围更小。比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则) 。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 浅谈java中的重载和重写的区别

本文链接: https://www.lsjlt.com/news/156096.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈java中的重载和重写的区别
    目录1.重载小结:2.重写小结:总结1.重载 重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同 (参数类型不同、参数个数不同甚至是参数顺序不同) 重载对返回类型没有要...
    99+
    2024-04-02
  • java中重载和重写的区别有哪些
    这篇文章主要介绍了java中重载和重写的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.重载重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同(参数...
    99+
    2023-06-25
  • Java中方法重写与重载的区别
    目录一、重写(Override)二、重载(Overload)三、总结Java方法重写(Override)与重载(Overload)的区别(超详细) 首页在我们要学习这个知识点之前,应...
    99+
    2024-04-02
  • Java中方法重写和方法重载的6个区别
    一、定义 方法重载(Overloading):在同一个类中,方法名相同但参数类型、参数个数不同的方法之间的关系。 方法重写(Overriding):在子类中,有相同的方法名、参数类型、参数个数并且返回类型兼容的方法称之为...
    99+
    2023-10-29
    方法 重写 区别
  • java方法的重写和重载有什么区别
    Java方法的重写(Override)和重载(Overload)是两个不同的概念。重写是指在子类中重新定义父类中已有的方法,方法名、...
    99+
    2023-08-11
    java
  • 重载和重写的区别有哪些
    这篇文章主要介绍“重载和重写的区别有哪些”,在日常操作中,相信很多人在重载和重写的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”重载和重写的区别有哪些”的疑惑有所帮...
    99+
    2024-04-02
  • java重载与重写的区别有哪些
    本篇内容主要讲解“java重载与重写的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java重载与重写的区别有哪些”吧!区别:1、重载实现的是编译时的多态性,而重写实现的是运行时的多态...
    99+
    2023-07-04
  • 详解Java中方法重写和方法重载的6个区别
    目录1.方法重写1.1 基本用法1.2 使用场景1.3 注意事项2.方法重载2.1 基本使用2.2 使用场景2.3 注意事项3.方法重写 VS 方法重载总结方法重写(Override...
    99+
    2024-04-02
  • 浅谈Java中Lock和Synchronized的区别
    目录1. 从功能角度来看2. 从特性来看3. 从性能方面来看1. 从功能角度来看 Lock和Synchronized都是java中去用来解决线程安全问题的一个工具 2. 从特性来看 ...
    99+
    2024-04-02
  • Java方法重载和方法重写的区别到底在哪?
    方法重载和方法重写的区别 方法重载 方法重载的主要是在一个类当中,方法的方法名相同,参数列表不同,返回值类型可以相同,也可以不同. public class Demo{ pu...
    99+
    2024-04-02
  • 浅谈java中为什么重写equals后需要重写hashCode
    目录一、先看现象二、为什么要重写hashCode三、实现代码四、总结一、先看现象 public class TestDemo { public static void ...
    99+
    2024-04-02
  • 浅谈Java中static和非static的区别
    关于static和非static变量的区别 static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。非static修饰的成员变量是在对象new出来的时候划分存...
    99+
    2023-05-31
    java static ava
  • C#中隐藏、重写、重载的区别是什么
    这篇文章主要讲解了“C#中隐藏、重写、重载的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中隐藏、重写、重载的区别是什么”吧!C#重载、C#重写和C#隐藏的定义C#重载:同一个...
    99+
    2023-06-17
  • java重构和重载有什么区别
    Java的重构(refactoring)和重载(overloading)是两个不同的概念。1. 重构是指对现有代码的修改,以改善代码...
    99+
    2023-08-30
    java
  • 浅谈Java中IO和NIO的本质和区别
    目录IO的本质DMA和虚拟地址空间IO的分类IO和NIO的区别IO的本质 IO的作用就是从外部系统读取数据到java程序中,或者把java程序中输出的数据写回到外部系统。这里的外部系...
    99+
    2024-04-02
  • 浅谈Java编程ToString()方法重写的意义
    上一篇文章我们介绍了java tostring方法重写代码示例,接下来,我们简单聊聊java编程tostring()方法重写的意义。toString()就是是重写,对于一般的对象来说都会有这个方法,其实这个方法的目的,主要就是将对象按字符串...
    99+
    2023-05-31
    java tostring() ava
  • C++深入探究重载重写覆盖的区别
    目录基类实现子类实现函数调用总结资源链接基类实现 我们先实现一个基类 class BaseTest { private: virtual void display() { c...
    99+
    2022-11-13
    C++ 重载 C++ 重写 C++ 覆盖
  • 浅谈RedisTemplate和StringRedisTemplate的区别
    目录一、区别二、问题总结三、案例:springboot整合redis五种数据结构API1、string(字符串)类型2、hash(哈希)类型3、list(列表)类型4、set(无序集...
    99+
    2024-04-02
  • 一文浅谈:&和&&的区别
    当我们在Java中使用逻辑运算符时,经常会用到两个符号:& 和 &&。这两个符号在表达式中的作用非常重要,但是很多人容易混淆它们的使用,因此我们需要了解它们之间的区别。 一、& 和 && 的用途 & 和 && 都可以用于逻辑运算,例 in...
    99+
    2023-10-24
    java jvm 面试
  • 浅谈Mysql8和mysql5.7的区别
    目录1.NoSql存储2.隐藏索引3.设置持久化4.UTF-8编码5.通用表表达式(CommonTableExpressions)1.NoSql存储 Mysql从5.7 版本提供了N...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作