黑马程序员技术交流社区

标题: 接口和抽象类的区别,看这题,你会吗 [打印本页]

作者: guyulei    时间: 2016-3-24 09:20
标题: 接口和抽象类的区别,看这题,你会吗
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 有什么区别?


作者: sdx_1234    时间: 2016-3-24 17:50
个人理解 匿名内部类中方法的重写时public修饰的而D中的抽象方法是默认修饰的 权限太低吧
作者: CangYe    时间: 2016-3-24 22:09
留名,待大神回答再来看
作者: 多情浪子    时间: 2016-3-25 08:11
B是一个接口,D是一个抽象类,你说会没有区别吗??
作者: Banana_uSuOO    时间: 2016-3-25 08:22
昨天刚学的抽象类和接口,
作者: guyulei    时间: 2016-3-25 14:30
多情浪子 发表于 2016-3-25 08:11
B是一个接口,D是一个抽象类,你说会没有区别吗??

那你认为正确答案是什么啊!
作者: cell121    时间: 2016-3-25 17:43
选B
new Inter(){
                        public void print(){
                                System.out.println("--my class1--");
                        }
                }.print();
是Inter的匿名内部类,然而只有B的定义格式是正确的

D的话,定义方法要有方法体{},interface 不用
作者: 牧殇    时间: 2016-3-26 21:21
多选题吗
作者: lidandan    时间: 2016-3-26 22:01
首先c是排除的,接口的方法都是抽象方法
a也不对,排除
就省c和d 了
根据上下文,选c喽
作者: 青争心    时间: 2016-3-27 20:04
一个是抽象  一个是接口  
作者: soul_浅蓝    时间: 2016-3-27 20:19
B、D都是对的吧
作者: 赵浩霖    时间: 2016-3-27 21:45
要我的话就蒙B
作者: yangxiong    时间: 2016-3-27 22:31
匿名内部类的前提就是继承一个父类(也包括抽象类)或者是实现一个接口。所以BD都是对的啊!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2