A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 袁春龙 黑马帝   /  2011-7-15 19:59  /  3923 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法中定义的类是不是一定要实现某个接口?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

8 个回复

倒序浏览
黑马网友  发表于 2011-7-15 20:09:44
沙发
接口是一种特殊抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
回复 使用道具 举报
黑马网友  发表于 2011-7-15 20:11:41
藤椅
不用啊,这种东西如果自己不知道就在Eclipse里面敲一下就好了。[code]public class a1 {
        public static void main(String[] args) {
                class a {
                }
        }
}
class a {
        public void abc() {
                class b {
                }
                b b = new b();
        }
}[/code]很简单的~... 这不就说明不管是普通方法还是main方法里都可以写不实现接口的类了么。不知道,就试试看么~... Eclipse不报错,那就是能行~....

评分

参与人数 1技术分 +2 收起 理由
admin + 2 有理有据,答得好,加2分

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-15 22:13:14
板凳
不是必须的。使用内部类最吸引人的理由是:每个内部类都能独立的继承自一个(接口的)实现,所以,无论外部类是否已经集成了某个(接口的)实现,对于内部类都没有影响。可以解决java多继承问题。。
方法中的内部类也叫局部内部类,有的时候,你解决一个复杂的问题,想创建一个类来辅助你的解决方案,但是又不希望这个类是公共可用时也使用内部类。这时可以不用继承接口。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 加1分吧

查看全部评分

回复 使用道具 举报

回复 3 # 的帖子

要是你的class b里面还有一个方法 ,请问我该如何调用那个方法?

           public class Interior{  
                public static void main(String[] args){  
        //                A a = new A();
                }
        }
        class A{
                public void withOut(){
                        class B{
                                public void withIn(){
                                        System.out.println("Hello heima");
                                }
                        }
                        B b = new B();
                }
        }
[ 本帖最后由 袁春龙 于 2011-07-15  23:18 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
admin + 2 继续追问,对好学的童鞋要表示奖励!!

查看全部评分

回复 使用道具 举报
不用的,但有一点非常重要就是方法中类不能访问外部类的局部变量。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 好像答得有点问题呢,局部变量声明为final就

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-17 02:00:16
7#
方法中的类,不就是内部类嘛,而且是局部内部类。和实现接口没什么关系。
楼上什么叫外部类的局部变量?外部类中的叫成员变量,方法中的才叫局部变量。
需要注意的是,局部内部类访问方法的局部变量时,只能访问final关键字修饰的

评分

参与人数 1技术分 +2 收起 理由
admin + 2 才看到你的,答出了我想说的,不错!!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马