冷面阎罗

低调做人&&高调做事
随笔 - 208, 文章 - 3, 评论 - 593, 引用 - 0
数据加载中……

今天面试的时候,发现已题来面试的大多没答对

         公司因业务扩展,需要扩大队伍,再这里也做一下广告,欢迎大家都来,我们单位不错,2006年年度最佳雇主的单位,不过招人是福建本地。
       其实这道题不难,只是一个多态的问题,这也是面向对象语言中的比较重要的一点(我个人认为),题目是这样
public class A {
 
public A () {
    System.out.println(
"A");

}

    
int a = 1;
 
double d=2.0;
    
void show() {
         System.out.println(
"Class A: a="+a+"\tb="+d);
    }

}
public class B extends A {
 
public B(){
     System.out.println(
"B");
 }

    
float a = 3.0f;

    String d 
= "java prog";

    
void show() {
        
//super.show();
        System.out.println("CLoas b=" + a + "\td=" + d);
    }

}

问在main方法中,这样定义输出是什么?
        A b=new B();
        System.out.println(b.a);
        b.show();
     其实就是的子与父的关系,你能答的出来么?不要想的太复杂了
   

posted on 2007-05-16 18:36 冷面阎罗 阅读(1092) 评论(10)  编辑  收藏 所属分类: java

评论

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

2006年年度最佳雇主的单位?阎罗大哥是哪里的?
2007-05-17 10:37 | 久城

# re: 今天面试的时候,发现已题来面试的大多没答对[未登录]  回复  更多评论   

这是一个JAVA继承的问题,不能说是多态
2007-05-17 13:34 | 小兵

# re: 今天面试的时候,发现已题来面试的大多没答对[未登录]  回复  更多评论   

呵呵,是我看错了,应该的多态
生成的对像是父类的,调用的属性应该也是A父类的a,但是方法进行了重定,应该调用B类的方法
2007-05-17 13:51 | 小兵

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

不明白为何b.a=1
2007-05-17 13:52 | leekiang

# re: 今天面试的时候,发现已题来面试的大多没答对[未登录]  回复  更多评论   

public class B extends A {
public B(){
System.out.println("B");
}
int a = 3;
int c = 4;//添加一个c属性
String d = "java prog";

public void a() {
//super.show();
System.out.println("CLoas b=" + a + "\td=" + d);
}
public static void main(String[] ares){
A b=new B();
System.out.println(b.c);//实例b是没有这个属性的
b.show();
}
}

A b = new B(); 这条语句,实际上有三个过程:
(1) A b;
将b声明为父类对象,只是一个引用,未分配空间
(2) B temp = new B();
通过B类的构造函数建立了一个B类对象的实例,也就是初始化
(3) a = (A)temp;
将子类对象temp转换未父类对象并赋给b,这就是上传(upcast),是安全的。
经过以上3个过程,b就彻底成为了一个A类的实例。
子类往往比父类有更多的属性和方法,上传只是舍弃,是安全的;而下传(downcast)有时会增加,通常是不安全的,不过上传会重写A的方法,多态的特性。

2007-05-17 14:17 | 小兵

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

运行结果
A
B
1
CLoas b=3.0 d=java prog

子类的无参构造方法首先调用父类无参构造方法,
输出A
B
父类的属性不能被子类覆盖,而父类的方法可以被子类覆盖,因此b.a输出的是父类的属性,而b.show()调用的则是子类的方法。
2007-05-17 17:59 | 我为J狂

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

呵呵,阎罗大哥是东软的吧?不知道是哪个项目组的?小弟是福建网通项目组的,明天就要调去贵阳一年了.
2007-05-26 22:46 | chesh

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

呵呵 彼此彼此。
可惜啊 你要去贵阳了
2007-05-27 11:42 | 冷面阎罗

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

我也是DR的
2007-06-07 15:45 | apai

# re: 今天面试的时候,发现已题来面试的大多没答对  回复  更多评论   

东软 哈哈 适合应届生锻炼一年和老员工养老的地方的单位 工资低 活累 国内项目还要现场开发,当驴使! 哈哈 还是最佳雇主单位 是不是因为东软软件民工多 选票多啊!
2007-08-13 14:59 | 草儿

只有注册用户登录后才能发表评论。


网站导航: