博客
关于我
方法的重载
阅读量:596 次
发布时间:2019-03-12

本文共 1269 字,大约阅读时间需要 4 分钟。

方法的重载概念

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。简单来说,就是在同一个类中,可以有多个方法具有相同的名字,但它们的参数列表必须不同。这种特性被称为方法的重载(Method Overloading)。

"两同一不同"是理解方法重载的关键:

  • 同一个类中
  • 方法名相同
  • 参数列表不同(参数个数和类型都可以不同)

举例说明

我们来看一下方法重载的典型例子:

  • Java.util.Arrays类中的sort()方法和binarySearch()方法
  • Java.io.PrintStream类中的println()方法
  • 还有一个由四个方法构成的例子:public void getSum(int i, int j) {System.out.println("1");}public void getSum(double d1, double d2) {System.out.println("2");}public void getSum(String s, int i) {System.out.println("3");}public void getSum(int i, String s) {System.out.println("4");}

    这些方法满足重载的条件,参数列表各不相同。

    不构成重载的例子:

  • public int getSum(int i, int j) {return 0;}
  • public void getSum(int m, int n) {}
  • private void getSum(int i, int j) {}
  • 这些方法虽然名称相同,但要么返回类型不同,要么参数个数或类型不同,都符合重载的条件吗?不,实际上,这三个方法并不能构成重载,因为它们的参数列表并不完全相同。

    如何判断是否构成重载?

    严格按照重载的定义来判断:

    • 同一个类中
    • 方法名相同
    • 参数列表不同(不管是参数个数还是类型)

    方法的权限修饰符、返回值类型、参数变量名、方法体没有关系。

    如何确定类中某一个方法的调用?

    方法名 -> 参数列表

    面试题:方法的重载与重写的区别?

    方法的重载是同一个类中方法名相同但参数列表不同的情况,而方法的重写是同一个类中继承自父类的方法进行修改或完全替换。主要区别包括:

    • 调用方式:重载是通过参数列表确定方法的具体实现,而重写是通过对象引用确定。
    • 可变性:重载不会改变方法的可变性,而重写会改变。
    • 返回类型:重载的方法返回类型可以不同,而重写的方法返回类型必须与父类方法一致。

    其他关键技术点

    • throws与throw
    • String与StringBuffer与StringBuilder
    • Collection与Collections
    • final与finally与finalize
    • sleep()与wait()
    • 抽象类与接口
    • String类与StringBuilder类
    • Collection框架

    这些都是Java编程中常用的技术关键点,理解它们对于提高代码质量至关重要。

    转载地址:http://mktxz.baihongyu.com/

    你可能感兴趣的文章
    BUU-MISC-caesar
    查看>>
    【专题2:电子工程师 之 上位机】 之 【36.事件重载】
    查看>>
    【专题3:电子工程师 之 上位机】 之 【46.QT音频接口】
    查看>>
    一文理解设计模式--命令模式(Command)
    查看>>
    VTK:可视化之RandomProbe
    查看>>
    block多队列分析 - 2. block多队列的初始化
    查看>>
    Java时间
    查看>>
    不编译只打包system或者vendor image命令
    查看>>
    The wxWindows Library Licence (WXwindows)
    查看>>
    【编程】C语言入门:1到 100 的所有整数中出现多少个数字9
    查看>>
    MySQL----基础及常用命令
    查看>>
    flink启动(二)
    查看>>
    关于宝塔面板安装的mysql用Navicat连接出现2003的错误解决
    查看>>
    Windows2016 FTP用户隔离
    查看>>
    吴恩达机器学习课程笔记(英文授课) Lv.1 新手村(回归)
    查看>>
    pair的用法
    查看>>
    SQL基本操作命令
    查看>>
    C# WinForm程序退出的方法
    查看>>
    Flex 布局的自适应子项内容过长导致其被撑大问题
    查看>>
    PL/SQL 动态Sql拼接where条件
    查看>>