论坛首页 Java企业应用论坛

从这个例子你可以想到JAVA多态的什么特性?

浏览 17873 次
精华帖 (0) :: 良好帖 (10) :: 新手帖 (6) :: 隐藏帖 (7)
作者 正文
   发表时间:2010-05-24  
不加一句注解,请看下面内容:你会想到JAVA多态的什么特性?

1. 父类:

package com.maozj.javatnk.duotai;

import java.util.ArrayList;
import java.util.Map;

public class ParentObj {
	public void doWork(ArrayList list) {
		System.out.println("ParentObj doWork...");
	}

	public void doSport(Map map) {
		System.out.println("ParentObj doSport...");
	}
}
2. 子类:

package com.maozj.javatnk.duotai;

import java.util.HashMap;
import java.util.List;

public class ChildObj extends ParentObj {

	public void doWork(List list) {
		System.out.println("ChildObj doWork...");
	}

	public void doSport(HashMap map) {
		System.out.println("ChildObj doSport...");
	}

}

3. 测试类:
package com.maozj.javatnk.duotai;

import java.util.ArrayList;
import java.util.HashMap;

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		test1();
		System.out.println("==================================");
		test2();
	}
	
	public static void test1(){
		ParentObj po = new ParentObj();
		ArrayList list = new ArrayList();
		po.doWork(list);
		
		po = new ChildObj();
		po.doWork(list);
		
		ChildObj co = new ChildObj();
		co.doWork(list);
		
	}
	
	public static void test2(){
		ParentObj po = new ParentObj();
		HashMap map  = new HashMap();
		po.doSport(map);
		
		po = new ChildObj();
		po.doSport(map);
		
		ChildObj co = new ChildObj();
		co.doSport(map);
	}	
}

4.输出结果:
ParentObj doWork...
ParentObj doWork...
ParentObj doWork...
==================================
ParentObj doSport...
ParentObj doSport...
ChildObj doSport...

   发表时间:2010-05-24  
java 一般会先找完全匹配的类型,然后再找一些继承的类型。。可以看下thinking in java ,里面有说。
0 请登录后投票
   发表时间:2010-05-24  
zhxing 写道
java 一般会先找完全匹配的类型,然后再找一些继承的类型。。可以看下thinking in java ,里面有说。

您的回答完全正确...
0 请登录后投票
   发表时间:2010-05-24  
最精确匹配原则。
这种虽然也是知识, 但是如果出现这种代码,还能通过review, 说明这个公司很有问题。
另外,如果这种题如果作为面试题,那个公司的出题人绝对是脑袋有病。
0 请登录后投票
   发表时间:2010-05-24  
berlou 写道
最精确匹配原则。
这种虽然也是知识, 但是如果出现这种代码,还能通过review, 说明这个公司很有问题。
另外,如果这种题如果作为面试题,那个公司的出题人绝对是脑袋有病。

哈哈 回答是正确的 但主管情绪比较强烈。。。 只能说两个字 更牛~~
0 请登录后投票
   发表时间:2010-05-24  
敢把代码写成这样的,也真有勇气。

代码风格太差,玩弄无聊的所谓技巧,无谓的增加代码的可读性和可维护性,增加出错的可能性,而收益基本是0.

对于初犯,教育他不要这样做。惯犯的话,如果有权限我直接fire掉他或者请他离开我的team,别把其他孩子给带坏了
0 请登录后投票
   发表时间:2010-05-24  
纯属无聊蛋疼之举
0 请登录后投票
   发表时间:2010-05-24  
上面的根本就没有发生override啊,参数类型不一致,当然会有那样的结果
1 请登录后投票
   发表时间:2010-05-24  
没那么渗透的理解,看了有点糊涂了,呵呵。。。
0 请登录后投票
   发表时间:2010-05-24  
这个无非是考察是不是了解Java的重载是编译时决定的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics