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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class myclass {
        public static void main(String[] args) {
                Outer o=new Outer();
                o.method();
        }
}
//补齐代码


class Outer{
        public void method(){
                new Inter(){
                        public void print(){
                                System.out.println("--my class1--");
                        }
                }.print();
        }
}

补齐代码处:可以填写?
A。class Inter{void print(); }
B.  interface Inter{ void print(); }
C.  interface Inter{public void print(){}; }
D。abstract class Inter{ abstract void print(); }
不知 B 和 D 有什么区别?

12 个回复

正序浏览
匿名内部类的前提就是继承一个父类(也包括抽象类)或者是实现一个接口。所以BD都是对的啊!
回复 使用道具 举报
要我的话就蒙B
回复 使用道具 举报
B、D都是对的吧
回复 使用道具 举报
一个是抽象  一个是接口  
回复 使用道具 举报
首先c是排除的,接口的方法都是抽象方法
a也不对,排除
就省c和d 了
根据上下文,选c喽
回复 使用道具 举报
牧殇 初级黑马 2016-3-26 21:21:07
8#
多选题吗
回复 使用道具 举报
选B
new Inter(){
                        public void print(){
                                System.out.println("--my class1--");
                        }
                }.print();
是Inter的匿名内部类,然而只有B的定义格式是正确的

D的话,定义方法要有方法体{},interface 不用
回复 使用道具 举报
多情浪子 发表于 2016-3-25 08:11
B是一个接口,D是一个抽象类,你说会没有区别吗??

那你认为正确答案是什么啊!
回复 使用道具 举报
Banana_uSuOO 来自手机 中级黑马 2016-3-25 08:22:36
报纸
昨天刚学的抽象类和接口,来自: iPhone客户端
回复 使用道具 举报
B是一个接口,D是一个抽象类,你说会没有区别吗??
回复 使用道具 举报
留名,待大神回答再来看
回复 使用道具 举报
个人理解 匿名内部类中方法的重写时public修饰的而D中的抽象方法是默认修饰的 权限太低吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马