当前位置: 首页 > 知识库问答 >
问题:

Java重载概念[重复]

毛成济
2023-03-14

当我运行这段代码时,它会打印字符串。我的问题是为什么没有编译时错误?对象和字符串的默认值为NULL。那么为什么不编译器说对method1的引用不明确

public class Test11
{

   public static void method1(Object obj) {
      System.out.println("Object");
   }

   public static void method1(String str) {
      System.out.println("String");
   }

   public static void main(String[] arr ) {
      method1(null);    
   }
}

共有1个答案

卫宁
2023-03-14

从这个答案来看:

在那里,您将注意到这是一个编译时任务。JLS在第15.12.2小节中说:

此步骤使用方法的名称和参数表达式的类型来定位既可访问又可应用的方法。这种方法可能不止一个,在这种情况下,选择最具体的方法。

 类似资料:
  • 当你学习 Dart 语言的时候,请记住以下事实和概念: 所有可以放在一个变量里面的东西都是对象,而且所有对象都是类的实例。每一个数值、函数和 null 都是对象。所有的对象都继承自 Object 类。 尽管 Dart 是强类型的,但是 Dart 支持类型推断所以类型声明是可选的。在上面的代码中,number 被推断为类型 int。当你想要显式声明没有预期的类型时,使用特殊的 dynamic 类型。

  • 主要内容:1. 标识符,2. 关键字,3. 保留字,4. 区分大小写,5. 直接量本文我们讲解一下 JavaScript 中的几个简单的概念,包括标识符、关键字、保留字、大小写和字面量。这些基本概念虽然不能直接提升我们的编程能力,但它们是 JavaScript 的基本组成元素。 1. 标识符 所谓标识符(Identifier),就是名字。JavaScript 中的标识符包括变量名、函数名、参数名、属性名、类名等。 合法的标识符应该注意以下强制规则: 第一个字符必须是字母、下划线

  • 例如,重载这两个: 因此,当被调用时,编译器将在每个调用中匹配正确的函数: 相关问题:概念会取代sfinae吗?

  • 英文原文:http://emberjs.com/guides/concepts/core-concepts/ 要开始学习Ember.js,首先要了解一些核心概念。 Ember.js的设计目标是能帮助广大开发者构建能与本地应用相颦美的大型Web应用。要实现这个目标需要新的工具和新的概念。我们花了很大的功夫从Cocoa、Smalltalk等本地应用框架引入了其优秀的理念。 然而,记住Web的特殊性非常

  • 主要内容:什么是输入/输出流,输入流,输出流在 Java 中所有数据都是使用流读写的。 流是一组有序的数据序列,将数据从一个地方带到另一个地方。 根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。 在学习输入和输出流之前,我们要明白为什么应用程序需要输入和输出流。例如,我们平时用的 Office 软件,对于 Word、Excel 和 PPT 文件,我们需要打开文件并读取这些文本,和编辑输入一些文本,这都需要利用输