今天看到一篇java面试宝典上的题目:
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?
提供的答案是:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
感觉很疑惑,我的印象中匿名内置类是可以继承其他类的
举个例子:
abstract class A
{
abstract public void fun();
}class outer
{
public static void main(String [] args)
{
class Inner extends A
{
public void fun()
{
System.out.println("implement for fun");
}
}
new outer().callIner(new Inner());
}
public void callIner(A a)
{
a.fun();
}
}
是我有错,还是他错,请高手指教
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?
提供的答案是:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
感觉很疑惑,我的印象中匿名内置类是可以继承其他类的
举个例子:
abstract class A
{
abstract public void fun();
}class outer
{
public static void main(String [] args)
{
class Inner extends A
{
public void fun()
{
System.out.println("implement for fun");
}
}
new outer().callIner(new Inner());
}
public void callIner(A a)
{
a.fun();
}
}
是我有错,还是他错,请高手指教
解决方案 »
- 关于匿名内部类的问题?!!!
- java每月月底定时执行指定任务
- JAVA界面的疑惑???????
- calendar 日期显示出0月 ?
- 如何把一个javabean中的所有属性值存到一个Map对象中
- 百分跪求, 与界面制作 (布局管理器) 相关的例题.
- 问个java中import的问题
- 怎么样获得输入文件 的名字?
- 请问在jbuilder5中如何将其他可视化组件添加进去?
- appletviewer 是否忽略classpath路径,只认当前路径.
- 面试题: 给你一组字符例如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,并算出出现几次
- 如何分析经过混淆后的java代码!
楼主【njnu_zhoubo】截止到2008-07-28 21:42:49的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:0
无满意结贴数:1 无满意结贴分:30
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:---------------------
无满意结贴率:100.00% 无满意结分率:---------------------
敬礼!
public static void main(String[] args) {
InnerTest inner = new InnerTest();
Test t = inner.get(3);
System.out.println(t.getI());
}
}
class Test { //超类
private int i;
public Test(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
class InnerTest { //用于内部类的测试
public Test get(int x) {
return new Test(x) { //创建匿名内部类,调用父类的构造方法
@Override public int getI() {
return super.getI() * 10;
}
};
}
} 这里的
return new Test(x) { //创建匿名内部类,调用父类的构造方法
@Override public int getI() {
return super.getI() * 10;
}
};
这是个匿名内部类
public class Main { public static void main(String[] args) {
InnerTest inner = new InnerTest();
Test t = inner.get(3);
System.out.println(t.getI());
}
}class Test { //超类 private int i; public Test(int i) {
this.i = i;
} public int getI() {
return i;
}
}class InnerTest { //用于内部类的测试 public Test get(int x) {
return new Test(x) { //创建匿名内部类,调用父类的构造方法 @Override
public int getI() {
return super.getI() * 10;
}
};
}
}
{
public void fun()
{
System.out.println("implement for fun");
}
}
你这个是一个普通的内部类并非匿名内部类