一道java面试题,有点迷糊

xiashik 2008-10-10 02:00:53
一个抽象类Test1:
public abstract class test1 {
int i=0;
}

一个接口Test2:
public interface test2 {
int i=2;
}

问题:请在下面横线处填写代码分别输出test1和test2中变量i的值
public class test3 extends test1 implements test2 {


public void print()
{
__________________

__________________
}
public static void main(String[] args) {
test3 t=new test3();
t.print();
}

}

今天去面试,不知道这道题怎么做,请大家看看!
...全文
1538 100 打赏 收藏 转发到动态 举报
写回复
用AI写文章
100 条回复
切换为时间正序
请发表友善的回复…
发表回复
万籁俱寂寂 2009-03-13
  • 打赏
  • 举报
回复
System.out.println(super.i);
System.out.println(test2.i);

abstract 是继承,所以可以用super.i
interface 是实现。
在interface中,所有的成员变量都是默认public final static ,
静态的所以test2.i。
2楼解法正典。
test1 t1 = new test3();
System.out.println(t1.i);
Test2t2 = new test3();
System.out.println(t2.i);
3楼解法精妙。
以上两法均可,本人eclipse试验过!绝对可信
万籁俱寂寂 2009-03-13
  • 打赏
  • 举报
回复
System.out.println(super.i);
System.out.println(test2.i);

abstract 是继承,所以可以用super.i
interface 是实现。
在interface中,所有的成员变量都是默认public final static ,
静态的所以test2.i。
2楼解法正典。
test1 t1 = new test3();
System.out.println(t1.i);
Test2t2 = new test3();
System.out.println(t2.i);
3楼解法精妙。
以上两法均可,本人eclipse试验过!绝对可信
majin777 2009-03-13
  • 打赏
  • 举报
回复
细节问题啊!
zhuhaitao321 2009-03-13
  • 打赏
  • 举报
回复
System.out.println(super.i);//因为继承了
System.out.println(Test12.i);//因为是接口
psyl 2009-03-13
  • 打赏
  • 举报
回复
8楼回答的很对,受教了
宝宝的笨熊 2009-03-12
  • 打赏
  • 举报
回复
路过,顺便学习了
kingshigang 2009-03-11
  • 打赏
  • 举报
回复
学习到了
Ostroff 2009-03-10
  • 打赏
  • 举报
回复

public void print() {
System.out.println ("Test1: i = " + super.i);
System.out.println ("Test2: i = " + Test2.i);
}
nsw12 2009-03-10
  • 打赏
  • 举报
回复
学习中
mdjz 2009-03-09
  • 打赏
  • 举报
回复
System.out.print(((Test1) this).i + " " + ((Test2) this).i);
fanchangyong 2009-03-09
  • 打赏
  • 举报
回复
System.out.println(super.i);
System.out.println(test2.i);
showlee2008 2009-03-09
  • 打赏
  • 举报
回复
得从基础学起!
canyingwushang 2009-03-08
  • 打赏
  • 举报
回复
從開始學Java到現在,這個問題我已經看到過N次了,呵呵~~~
心如刀割 2009-03-04
  • 打赏
  • 举报
回复
受益了!!!!!!
landyshouguo 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiashik 的回复:]
哦,对啊,你说我才记起来在interface中,所有的成员变量都是默认public final static , 呵呵,谢谢了!
[/Quote]d
行舟 2009-03-03
  • 打赏
  • 举报
回复
有个最强的那就是反射了!
print方法中的代码:
try {
Class Test2Class = Class.forName("test2");
Test2Class.getFields();
System.out.println(Test2Class.getField("i").getInt(null));
}catch (Exception e) {
e.printStackTrace();
}
System.out.println(super.i);
youxxboy 2009-03-03
  • 打赏
  • 举报
回复
这题相当的有意思,就是不知道怎么做
benbenfafa_88 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xinhaoluan 的回复:]
public void print(){

System.out.println(super.i);
System.out.println(Test2.i);
}

public static void main(String[] args) {

Test3 t = new Test3();

t.print();

}
[/Quote]up
xgj1000 2009-03-02
  • 打赏
  • 举报
回复
ding
yangfeitarena 2009-03-02
  • 打赏
  • 举报
回复
public class Test3 extends Test1 implements Test2 {

public void print() {
// __________________
System.out.println(Test2.i);
// __________________
System.out.println(super.i);

}

public static void main(String[] args) {
Test3 t = new Test3();
t.print();
}

}

加载更多回复(80)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧