`

详解Java重载(Overload)

阅读更多
   重载(Overload)
   覆盖(Override)
今天的重点主要是讲重载(Overload)。
什么叫重载?
简单的说:重载允许你在一个类中定义多个同名的方法,我可以在一个类里面定义好多方法,
这些方法的名字是相同的, 什么地方不一样呢?参数表一定不同.

对于修饰符,对返回值,抛出的异常都没有什么限制,根返回值类型一点关系都没有。

只要方法名相同,参数表不同,这就叫方法的重载(Overload)。

  • 什么叫做参数表不同?

1、参数的个数不相同  
2、参数的个数虽然相同,但是参数的类型不相同
3、参数类型的排列不同 
4、形参(形式参数)名不同 ×

 
public void study(){
    System.out.println("study()");
  }
  //1、参数的个数不相同 √
  public void study(int a){
    System.out.println("study(int)");
  }
  //2、参数的个数虽然相同,但是参数的类型不相同 √
  public void study(double d){
    System.out.println("study(double)");
  }
  public void study(int a ,double d ){
    System.out.println("study(int,double)");
  }

   //3、参数类型的排列不同 √
  public void study(double a,int b){
    System.out.println("study(double,int)");
  }
   
  /*4、形参(形式参数)名不同  错误 ×
   public void study(double c,int d){
    System.out.println("study(double,int)");
  }*/






  • 调用方法的时候,根据什么来找到合适的方法?

显然会根据你给的参数,调哪个方法由你给的参数来决定。

  • 在调用哪个方法,是在什么时候决定?
[size]
是在编译期间决定,这是关于方法重载一个很重要的特点,到底要调用哪一个方法是由
编译器在编译的时候根据参数,根据参数类型 决定,换句话说在我们javac 编译的时候要调用哪个方法就已经确定下来了。在我们编译的时候就已经确定下来了。


方法重载还有一个好听的名字叫编译时多态。

我们说每当我们见到一个面向对象的语法,总是要揪出他背后的思想,
为什么有这个语法,如何通过这个语法来表现体现出面向对象的思想呢,
我们来看下方法重载的概念,他的思想的概念!
貌似这个方法其实没有必要设置重载,我换个名不就完了吗?
我拿名字就可以把不同的方法区分开了,我干嘛要方法名相同,参数表不一样呢?

为什么不换个名字,取不同的名字,我拿名字就可以把不同的方法给区分开了?

方法的声明代表他能做什么!
方法的实现代表着他怎么做!


[size=medium]
  • 什么叫方法?

你会干什么,
你的功能,
你的行为就是你的方法。

  • 为什么不通过方法名来区分?

方法是什么?方法是一个对象的功能,这个方法最终是留给其他对象去调用

比如说b有一个吃方法,由a去调用,a调用b的吃方法,换句话讲就是a让b吃。
a--调用-->b 的吃方法。

1、如果b中两方法的方法名不一样,那么这两个方法的差异要由谁来控制?
由a来控制,a要选择对b具体的调用方法。

2、而如果这两个方法都是吃,那么这两个方法的差异要由谁来控制?
我就对b调用一个吃方法,b要根据a给的东西(参数)自己选择一个合适的吃方法。

各司其职: 对象负责把东西(参数)给 方法 , 方法自己选择合适的处理方法。

重载的作用: 把一个对象同类方法,由于参数不同造成的差异,对于对象的调用者或者叫对想的使用者屏蔽。


方法重载最著名的应用就是System.out.println()/print()都是重载的方法;
java.lang.Object
  |-java.io.OutputStream
      |-java.io.FilterOutputStream
          |-java.io.PrintStream 类的out对象的println()方法!






























分享到:
评论

相关推荐

    java重载的实现方法

    Java重载的实现方法详解 Java重载(Overload)是Java编程语言中的一种机制,它允许在同一个类中定义多个方法,具有相同的名称,但参数列表不同。这种机制可以提高代码的灵活性和可读性。本文将详细介绍Java重载的...

    JAVA重载概念

    ### JAVA重载概念详解 #### 一、方法重载的概念 在 Java 编程语言中,方法重载(Method Overloading)是一种非常重要的特性,它允许我们在同一个类中定义多个同名但参数列表不同的方法。这种方法重载的概念是实现...

    java 重载(overload)与重写(override)详解及实例

    Java中的重载(Overload)和重写(Override)是两个重要的面向对象概念,它们都是实现多态的方式,但有着本质的区别。 **重载(Overload)** 重载发生在同一类或具有继承关系的类中,它允许创建多个同名方法,但这些方法...

    Java重写(Override)与重载(Overload)区别原理解析

    Java重写(Override)与重载(Overload)区别原理解析 Java 编程语言中有两个重要的概念:重写(Override)和重载(Overload)。这两个概念经常被混淆,但它们具有不同的作用和特点。本文将详细地介绍 Java 中的重写和...

    overload and override

    在面向对象编程中,尤其是在Java语言中,`Overload`(重载)和`Override`(重写)是两个非常重要的概念,它们帮助开发者更好地组织代码并提高代码的复用性和灵活性。 #### 二、Overload(重载) **定义**: - `...

    Java基础教学视频详解

    多态的实现方式包括方法重写(Override)和方法重载(Overload)。 #### 5. 异常处理 - **异常的概念**: 运行时发生的错误称为异常。 - **异常处理机制**: 使用try-catch-finally结构来捕获并处理异常。 - **自定义...

    java笔记整理(超详细) java笔记整理(超详细)

    - 构造器用于初始化新创建的对象,不能被重写(override),但可以重载(overload)。 - 私有的构造器可以防止其他类实例化,通常在单例模式中使用。 6. **重载和重写**: - 重载发生在同一类中,方法名相同,但...

    java基础面试题目详解

    重写(Override)和重载(Overload)是两个重要的概念。重写发生在子类对父类方法的扩展,子类的方法具有与父类相同的方法名和参数,但在子类中实现了不同的功能。重载则是在同一类中,方法名相同但参数列表不同的...

    Java面试题以及答案整理.pdf

    - Overload(重载)是在同一个类中,方法名相同但参数列表不同的方法。 - Override(重写)是子类对父类方法的重新实现,方法名、返回类型和参数列表必须完全相同。 10. **Final类的特点** Final类不能被继承,...

    Java 重写与重载方法与区别详解

    Java中的方法重写(Override)和重载(Overload)是两种不同的概念,它们都是多态性的体现,但实现方式和目的各有不同。 **重写(Override)** 重写发生在继承关系中,当子类继承父类后,可以对父类中已有的非...

    Java笔试面试题详解

    21. **Overload与Override**:Overload是重载,发生在同一类中,方法名相同但参数列表不同;Override是重写,发生在子类中,方法名、返回类型和参数列表都与父类一致。 22. **单例设计模式**:确保类只有一个实例并...

    java面试题及答案详解

    以下是一些常见的Java面试问题及答案详解: 1. **Java源文件与类的关系**: - 一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相同。其他非公共类没有这个限制...

    Java岗面试核心MCA版

    ### Java基础核心知识点详解 #### 一、Java概述与编程概念 - **何为编程**:编程是指通过编写计算机能够理解和执行的指令集合(代码),从而实现特定功能或解决特定问题的过程。 - **什么是Java**:Java是一种广泛...

    2024java面试题.pdf

    ### Java 面试知识点详解 #### 一、Java 基础知识 1. **面向对象的特征:** - **抽象**:抽象是指在程序设计中隐藏对象的复杂性,只展示对象的关键特性。这有助于降低系统复杂度,提高代码的可维护性和可读性。 ...

    Java-Interview-Question.pdf

    - **构造器(Constructors)**: 用于创建对象,可以重载,但不能被override(重写),但可以被overload(重载)。 - **接口(Interface)**: 定义了类必须实现的方法,是完全抽象的类。 - **抽象类(abstract)**: 不能...

    Java软件开发实战 Java基础与案例开发详解 9-8 练习题 共4页.pdf

    - **实现方式**:重写(Override)和重载(Overload)。 #### 6-4 访问修饰符 - **类型**:public、protected、private、默认。 #### 6-5 static修饰符 - **用途**:修饰类成员,表示静态变量或静态方法。 #### 6...

    java基础题面试大全

    【Java基础面试题详解】 Java 是一种广泛应用的面向对象的编程语言,对于任何Java开发者来说,掌握基础是非常关键的。以下是一些常见的Java基础面试题及其解析: 1. **作用域的区别** Java中的访问修饰符包括...

    疯狂java pdf 影印版

    - 实现多态的方式主要有覆盖(Override)和重载(Overload)。 #### 三、高级特性详解 1. **异常处理**: - 异常处理机制用于处理程序运行时可能出现的错误。 - 使用try-catch-finally块捕获并处理异常。 - ...

    java核心技术学习技术笔记

    Java中的多态主要体现在方法的重写(Override)和重载(Overload)。 5. 接口:接口是Java中的一种抽象类型,它定义了一组方法的签名,不包含任何方法的实现。类可以实现多个接口,实现多继承特性。 6. 异常处理:...

    java多态机制

    ### Java多态机制详解 #### 一、引言 多态是面向对象编程的重要特性之一,它使得程序设计更加灵活且易于扩展。Java作为一种广泛使用的面向对象编程语言,其多态机制是理解Java编程的关键所在。本文将详细介绍Java...

Global site tag (gtag.js) - Google Analytics