对于方法重载来讲,如果在调用方法的时候,传入参数null对象,会出现怎样的结果呢?
下面就举个Sample:
1. 重载方法类:
public class MethodReloader {
public void printObject(String str){
System.out.println("String print out");
}
public void printObject(Object obj){
System.out.println("Object Print out");
}
}
2. 测试类:
public class TestString {
/**
* @param args
*/
public static void main(String[] args)throws Exception {
try{
MethodReloader methodReloader = new MethodReloader();
methodReloader.printObject(null);
}catch(Exception ex){
ex.printStackTrace();
}
}
1) 执行结果是什么呢?
2) 如果在类MethodReloader中添加一行:
public void printObject(Double obj){
System.out.println("Double print out");
}
结果是什么呢?
3) 如果在类MethodReloader中添加一行:
public void printObject(double obj){
System.out.println("double print out");
}
结果是什么呢?
1) Console输出结果是:String print out.
2) Compile error.
3) Console输出结果是:String print out.
结论:
关于方法重载,JVM总是在内存中去寻找参数类型和个数相等的方法去执行,但是当寻找多个方法时,先匹配所有类型的最小子类(如:Object是所有类的父类,即先匹配其它类),就调用该方法。如果发现有两个同等级类型的方法时候,在编译期间就出现Exception.
分享到:
相关推荐
在Java编程语言中,方法继承、方法重载、方法覆盖是三个非常重要的概念。它们之间既有关联又有区别,掌握这些概念对于深入理解面向对象编程有着至关重要的作用。 #### 一、Java方法继承 **方法继承**是指在一个类...
在本实验中,学生没有涉及到方法的重载,但在实际编程中,方法的重载非常重要。 四、Math 类的使用 Math 类是 Java 中的一个工具类,提供了一些数学运算的方法,例如,sin、cos、log10、pow、sqrt 等。在本实验中...
Java第四章实验答案涵盖了Java语言的基础知识点,包括类和对象、构造方法、方法重载、面向对象编程、条件表达式和数学运算等。本文详细解释了AreaAndLength类、Trangle类、Lader类和Circle类的代码实现和知识点解析...
在第一个实验中,我们定义了一个接口Printx,该接口中只有一个方法printMyWay(),该方法没有形参,返回值为空。然后,我们创建了一个类B,实现了Printx接口,在类B中,我们重写了printMyWay()方法,使其打印出定义...
在这个实验中,我们主要探讨了Java编程语言中的几个核心概念:方法的定义、重载以及一维数组的应用。首先,让我们详细分析实验标题和描述中提到的知识点。 1. **方法的定义**: 在Java中,方法是完成特定任务的一...
在Java编程语言中,类是面向对象编程...通过这个实验,你可以更好地理解类的定义、对象的创建、封装的实现、构造方法的定义和重载等核心Java编程概念。实践这些知识点有助于提升编程技能,更好地应用面向对象编程思想。
本次实验旨在通过一系列具体的编程任务,加深学生对Java语言中流程控制结构的理解,并掌握Java异常处理的基本方法。具体目标包括: - **熟练掌握Java各种流程控制结构(选择结构、循环结构)的使用**:通过对不同的...
"Java语言与面向对象程序设计(2版)实验指导5.2"可能涵盖了这一领域的关键主题,尤其是关于继承和方法重载的概念。这两个特性是Java中实现多态性和灵活性的基础。 **继承**是OOP的一个关键特性,它允许一个类...
在这个实验中,主要涉及到Java编程语言中的几个关键概念:方法的定义、方法的重载以及一维数组的应用。首先,让我们详细了解一下这些知识点。 1. **方法的定义**: 在Java中,方法是实现特定功能的代码块,可以被...
3. Java图形用户界面(GUI)编程:报告中提及了“JFrame”、“JButton”、“JLabel”、“JComboBox”、“MenuItem”等组件,这说明实验中涉及到了使用Java的Swing库来构建图形用户界面。Swing是Java的一个用户界面...
在本次实验中,我们将深入理解面向对象的基本概念,包括类的定义、对象的创建、接口的使用以及异常处理。 首先,实验的第一个部分涉及创建一个名为`Course`的类,用于表示课程。课程具有三个属性:课程名...
实验过程中,学生应理解如何使用面向对象编程解决问题,同时掌握Java类的构建和方法的实现。通过实验,可以提升编程技能,为后续更复杂的编程任务打下坚实基础。 **六、附录:代码片段** 这里只列出了实验报告中...
- 在实验中,要求定义3个重载的`volume`方法,用于计算不同几何体的体积。例如,除了求正方体体积的方法,还可以有: ```java double volumeOfSphere(double radius) { return (4.0 / 3.0) * Math.PI * radius *...
实验中,学生将通过编写一个处理复数运算的类来实现这一目标。 #### 多态性简介 多态性是面向对象编程中的一个重要特性,它允许子类对象以父类对象的形式出现。Java中实现多态性的主要方式有两种:方法重载...
函数重载是Java中允许同一方法名但参数列表不同的多个方法存在,这在`Rectangle`类中得到了体现,我们创建了两个方法:`getLength()`和`getArea()`,它们虽然都无参数,但返回类型不同,实现了功能上的区分。...
在实验中,创建了一个名为`box`的`Box`类对象,然后使用`setDemo`方法设置了它的属性值。 3. **方法的定义和调用**: `setDemo`方法负责设置立方体的尺寸,而`area`方法则计算立方体的体积。在`main`方法中,我们...
1. **Java基本语法**:这部分实验主要涉及Java的基础语法,如变量声明、数据类型、运算符、流程控制(if-else、switch、for、while循环)以及方法定义等。通过编写简单的程序,学习者可以掌握如何在Java环境中组织和...
5.5 实验4 方法重载 第6章 继承和多态 6.1 预备知识 6.2 实验1 子类的派生与方法覆盖 6.3 实验2 多态性与动态绑定 6.4 实验3 嵌套类和内部类 第7章 包、接口和常用工具类 7.1 预备知识 7.2 实验1 包的使用与...
同时,抽象类和接口也是面向对象设计中的重要概念,它们在多态和解耦中起到关键作用,可能也会在实验中有所涉及。 总之,《Java语言与面向对象程序设计(2版)实验指导5.3》将引导你深入理解面向对象编程的核心概念...
在这个实验中,我们将深入探讨Java编程中的几个关键概念:方法的定义、方法的重载以及一维数组的应用。首先,让我们逐一分析这些知识点。 1. **方法的定义**: 在Java中,方法是实现特定功能的代码块,可以通过...