黑马程序员技术交流社区

标题: 一道很考验水平的题 [打印本页]

作者: hlh    时间: 2016-5-11 23:05
标题: 一道很考验水平的题
本帖最后由 hlh 于 2016-5-11 23:06 编辑

public abstract class MyClass {

     public int constInt = 5;
     //add code here
     public void method() {
     }
}

Apublic abstract void method(int a);

B constInt = constInt + 5;

C public int method();

D public abstract void anotherMethod() {}
答案是A考察的是抽象类 你们有谁能搞定吗


作者: 冯领峰    时间: 2016-5-11 23:11
哦哦,这是一个抽象类,所以里面肯定要走抽象方法,那么就派出了B和D,然后抽象方法不能有方法体,所以选A
作者: 钱金磊    时间: 2016-5-12 00:44
冯领峰 发表于 2016-5-11 23:11
哦哦,这是一个抽象类,所以里面肯定要走抽象方法,那么就派出了B和D,然后抽象方法不能有方法体,所以选A ...

抽象类不一定是有抽象方法的!
作者: 钱金磊    时间: 2016-5-12 00:47
没有抽象类的抽象方法的作用是用于为了不让别的类去创建它的对象
作者: 18735346124    时间: 2016-5-12 00:50
考查方法的重载,抽象类中可以是抽象方法,也可是具体方法,重载只是方法名相同,与返回值与参数列表无关
作者: 冯领峰    时间: 2016-5-12 18:02
钱金磊 发表于 2016-5-12 00:44
抽象类不一定是有抽象方法的!

哦,那根据排除法也可以选Aa
作者: xiaogui    时间: 2016-5-12 18:04
学习了。。涨姿势了。。这个可以有。。
作者: Eliloveit    时间: 2016-5-12 18:10
麻烦在选项ADCD后面加上冒号强迫症看了根本把持不住啊
作者: 00零度00    时间: 2016-5-12 18:24
学渣不会
作者: hjbing456    时间: 2016-5-12 19:09
我是过来学习的,你们先 回答。我归纳下。
作者: hlh    时间: 2016-5-12 23:01
没有人能 详细解释一下吗
作者: Sj改变    时间: 2016-5-12 23:14
这是啥呀 这道题只能用排除法做
作者: lvaenet1    时间: 2016-5-12 23:16
路过打酱油
作者: dujia121508394    时间: 2016-5-13 00:48
抽象类中声明的方法可以是抽象方法,也可以是普通方法,如果声明的是抽象方法,那么方法一定是abstract修饰的,且没有方法体。所以选A
作者: z736886202    时间: 2016-5-13 01:05
哈哈长啸一声远去
作者: liuqjss    时间: 2016-5-13 09:35
个人见解,不对请指正:
A:为一个重载的抽象方法,正确
B:public修饰变量后可以被包中的任何类访问,再改变constInt的值是不对的
C:既然不是抽象方法,就要有方法体,后面得加上{},错误
D:被abstract修饰的方法为抽象方法,抽象方法就不能有方法体,不能有{},错误




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