我在看Java面试题时,有一道问题很是不解。
问题:
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
给出的标准答案是:
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现我翻来覆去的读也没弄懂。
我的理解就是:匿名类部类是以new的形式实现父类或接口,它不存在类名。
如题所说的继承与实现,到底是何种书写规格,如果没有书写规格何来此问。我也看了Java编程思想上对内部类的介绍,没提到到匿名内部类有继承与实现这一说。
不知道我的提问大家是否能看懂,如果知道的请帮我解决下心中的困扰。
问题:
Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
给出的标准答案是:
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现我翻来覆去的读也没弄懂。
我的理解就是:匿名类部类是以new的形式实现父类或接口,它不存在类名。
如题所说的继承与实现,到底是何种书写规格,如果没有书写规格何来此问。我也看了Java编程思想上对内部类的介绍,没提到到匿名内部类有继承与实现这一说。
不知道我的提问大家是否能看懂,如果知道的请帮我解决下心中的困扰。
public void run(){ }
}.start();是否算继承了Thread呢?
public class TestInnerClass {
public interface T1 {
void Test();
} public static interface T2 {
void Test2();
} class IImpl implements TestInnerClass.T1 { @Override
public void Test() {
System.out.println("IImpl Test");
}
} class IImpl2 implements TestInnerClass.T2 { @Override
public void Test2() {
System.out.println("IImp2 Test");
}
} public static void main(String[] args) {
TestInnerClass t = new TestInnerClass();
TestInnerClass.T1 i = t.new IImpl();
i.Test();
TestInnerClass.T2 i2 = t.new IImpl2();
i2.Test2();
}
};引用一下, 一个哥们解决了我的困惑
如果是的话,我尝试了下:一个内部类可以作为一个抽象类,由另一个内部类继承。
那标准的不能继承其它类又如何理解?
TestInnerClass.T1 i = t.new IImpl();
i.Test();
TestInnerClass.T2 i2 = t.new IImpl2();
i2.Test2();这种new法倒是很少见
public abstract class Ellipse2D extends RectangularShape {
public static class Float extends Ellipse2D implements Serializable {
public Float() {
}
public Float(float x, float y, float w, float h) {
setFrame(x, y, w, h);
}
}
}