java-关于null的一段测试程序

问题描述

关于null的一段测试程序

public class testDriver {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    testDriver td = new testDriver();
    td.test(null);

}

public void test(Object o){
    System.out.println("object");
}
public void test(String s){
    System.out.println("String");
}

}
上面这段代码运行给过为何为“String”?我理解object是String的父类级别的,并且null也表示空引用,所以td.test(null)调用结果应该是“object”才对。

解决方案

因为String是Object的子类,所以在编译器调用的时候会先去调用子类。所以结果就是String
一般都是会优先子类的。是一个之下而上的过程。
我刚刚测试了一下我的猜想
public static void test(Integer o){
System.out.println("int");
}
如果你加再加这么一个方法,编译就会报错,因为编译器不知道到底去调用哪个方法。

时间: 2024-08-03 12:53:41

java-关于null的一段测试程序的相关文章

java中动态执行一段代码

动态|执行 动态的执行一段简单代码,采用生成java文件,调用javac编译,反射执行的方式. 只是一个简单测试,有些地方有待完善. 代码如下 -------------------------------------------------------------------------------- import java.io.*; /** * 动态执行一段代码(生成文件->编译->执行) * @author kingfish * @version 1.0 */public class

动态-JAVA 中Null值到底是什么

问题描述 JAVA 中Null值到底是什么 public class test { public static void main(String[] args) throws Exception { Temp temp = new Temp(); temp.test("1"); temp.test(null); } } public class Temp { public void test(Object a){ System.out.println("test Object

java 怎么实现用文件存一段文字呢?

问题描述 java 怎么实现用文件存一段文字呢? 这段文字由控制台输入,而且当控制台输入换行时,文件中也要存储为相应的换了行的格式 解决方案 File f = new File("1txt") ; BufferedWriter bfw = new BufferedWriter(new FileWriter(f)); bfw.write(字符串); 解决方案二: 首先,先收集控制台输入的数据,再写一个文件写入的方法就可以了.文件读写的案例参考关于Javaio的存入问题,就是今天的问题.

java ee中的一段代码:

问题描述 java ee中的一段代码: for (Teacher teacher : teachers) { teacher.setEditable(false); 解决方案 foreach就是一种特殊for循环,foreach自动遍历每一个元素,无法根据索引指定某个特定元素.格式是for(元素类型 元素变量:遍历对象){--},例如: String[] hobbys = {"read","sing","dance"}; for(String h

java新手问题,这段小代码是什么意思,起什么作用,希望说详细些,谢谢

问题描述 java新手问题,这段小代码是什么意思,起什么作用,希望说详细些,谢谢 public List getListBySQL(final String queryString) { try { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException SQLExc

java-初学Java,想知道这段代码哪里出错了

问题描述 初学Java,想知道这段代码哪里出错了 package text; public class text1 { int a; int b; public void print() { System.out.println("a="+a+",b="+b); } } class text2 { public static void main(String[] args) { text1 x=new text2(); x.a=111; x.b=222; x.pri

java-这段Java程序中,有一段语法我不太明白,大神进来给看看~

问题描述 这段Java程序中,有一段语法我不太明白,大神进来给看看~ public class ChengJi { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print("Please input Grade: "); x = s.nextInt(); if (x > 100) { System.out.pri

java源码-求这段c语言的代码换成java的代码

问题描述 求这段c语言的代码换成java的代码 #include #define P 3.1415927#define toFeet(x) x/12.0#define toMiles(x) x/5280.0int main(){ double diameter;//直径 int revolutions;//转数 double time;//香蕉 double s; int count=1; while(scanf("%lf%d%lf",&diameter,&revolu

java代码-初学者,这段奇怪的代码啥意思啊,谢谢啦!

问题描述 初学者,这段奇怪的代码啥意思啊,谢谢啦! <script> var temp_num = null; var now_num = null; var the_top = 159; //表单的最高,最低 var the_bottom = 178 var no_can_do = false; function Show_menu(u_num,d_num) { event.srcElement.className = "out2"; if(no_can_do) { re