- interface Inter
- {
- void method();
- }
- class Test
- {
- /*
- static class Inner implements Inter //静态的内部类才能被静态成员调用
- {
- public void method()
- {
- System.out.println("haha");
-
- }
- }
- */
-
- static Inter function()
- //返回Inter类型的才能调用 method方法,相当于多态
- //感觉此处 应该是 Inter 匿名内部类返回值 = new Inter实现类类型();
- {
-
- //匿名内部类
- return new Inter()
- {
- public void method()
- {
- System.out.println("haha");
-
- }
-
- };
-
- // return new Inner();
-
-
-
- }
-
-
- }
- class InnerClassTest
- {
- public static void main(String[] args)
- {
- Test.function().method();
-
- }
-
- }
复制代码 在学习的过程中有了一点小的体会,就拿了出来,首先是关于 此代码中注释掉的部分,当外部类的静态成员方法去调用内部类时,要保证该内部类也是静态的,因为静态方法是在类实例化之前就可以使用的,可以通过类名调用,而这时动态内部类都还没实例化,也就没有对象去调用,所以会报找不到方法的错误,另外此练习还顺便加深了一下对多态的印象。
|