1.
1) public class ReturnIt{
2) returnType methodA(byte x, double y){
3) return (short)x/y*2;
4) }
5) }
what is valid returnType for methodA in line 2?

这一题考的是Java中的类型转换

在这里,自需要看第(3)据代码就行了。分析以下这一行代码

(short)x / y * 2

这一行代码对 x 进行类型转换,将 byte 类型的 x 转换成 short 类型,进行了类型提升。

y 是 double 类型,2 是字面值,在 Java 中整型的字面值默认为 int 类型,所以这里的 2 为 int 类型。

这一行代码中,double 类型是最高的数据类型,根据类型自动提升原则,上面的这一行代码的返回值类型为 double。

所以正确答案为:double


2.
1) class Super{
2) public float getNum(){return 3.0f;}
3) }
4)
5) public class Sub extends Super{
6)
7) }
which method, placed at line 6, will cause a compiler error?
A. public float getNum(){return 4.0f;}
B. public void getNum(){}
C. public void getNum(double d){}
D. public double getNum(float d){return 4.0d;}

这一题考的是Java中的方法重载(overload)方法重写(override)的区别。

所谓方法重载

  1、方法名相同

  2、参数列表不同。(包括参数个数不同、参数类型不同、参数顺序不同)

  但是,注意:方法重载与方法返回值类型无关,只要满足了1和2两个条件,就是方法重载。而且,访问控制符也不会影响方法重载。

所谓方法重写

  1、方法名相同

  2、参数列表相同

  3、方法返回值相同

  方法体可以一样,也可以不一样。比如:

class Super
{
public float getNum()
{
return 3.0f;
}
} public class Sub extends Super
{
@Override
public float getNum()
{
return 3.0f;
}
}

  但是,注意

  1、子类重写父类的方法,那么子类方法的访问控制符的权限范围只能比父类的大或者平级,不能比父类方法的访问权限小。

  2、父类的私有方法不能被子类覆盖,比如

class Super
{
private float getNum()
{
return 3.0f;
}
} public class Sub extends Super
{
private float getNum() // 这样不算是方法重写
{
return 3.0f;
}
}

  3、子类重写方法抛出的异常,不能比父类抛出的异常要多,也就是说子类重写方法抛出的异常的范围不能大于父类的方法,但是可以是同级别的。

class Super
{
public float getNum() throws IOException, FileNotFoundException
{
return 3.0f;
}
} public class Sub extends Super
{
@Override
public float getNum() throws IOException, UnknownHostException // 这样写是可以的
{
ServerSocket socket = new ServerSocket(1234);
return 0;
}
}
class Super
{
public float getNum() throws IOException, FileNotFoundException
{
return 3.0f;
}
} public class Sub extends Super
{
@Override
public float getNum() throws IOException, Exception // 这样写是错误的
{
ServerSocket socket = new ServerSocket(1234);
return 0;
}
}
class Super
{
public float getNum() throws IOException, FileNotFoundException
{
return 3.0f;
}
} public class Sub extends Super
{
@Override
public float getNum() throws Exception // 这样写也是错误的
{
ServerSocket socket = new ServerSocket(1234);
return 0;
}
}

  4、父类的方法不能被子类覆盖为静态方法。也不能父类为静态方法,而子类却没有覆盖为静态方法。自有父类的方法是静态的,而子类覆盖的时候也是静态的,这昂才算是正确的方法重写。

class Super
{
public float getNum()
{
return 3.0f;
}
} public class Sub extends Super
{
public static float getNum() // 这是错的
{
return 0.0f;
}
}

  5、父类的私有(private)方法不能被子类覆盖。这是因为由于 private 关键字决定的,用 private 修饰的属性或者方法,只能被本类访问。

  6、父类的抽象方法可以被子类通过两种途径覆盖(即实现和覆盖)  // TODO 不理解,先放着

  7、父类的非抽象方法可以被覆盖为抽象方法            // TODO 不理解,先放着

所以正确答案为:C

SCJP_104——题目分析(1)的更多相关文章

  1. SCJP_104——题目分析(5)

    18. public class Test { public static void add3(Integer i) { int val=i.intvalue(); val+=3; i=new Int ...

  2. SCJP_104——题目分析(2)

    3. public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x=y) System.out ...

  3. SCJP_104——题目分析(4)

    14. which three are valid declaraction of a float? ADFA. float foo=-1; B. float foo=1.0; C. float fo ...

  4. SCJP_104——题目分析(3)

    11. what is reserved words in java?A. run B. default C. implement D. import Java 中,给标识符取名的时候,不能使用关键字 ...

  5. SCTF 2014 pwn题目分析

    因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很 ...

  6. 路由器漏洞复现分析第三弹:DVRF INTRO题目分析

    这个项目的目的是来帮助人们学习X86_64之外其他架构环境,同时还帮助人们探索路由器固件里面的奥秘. 本文通过练习DVRF 中INTRO 部分的题目来学习下MIPS 结构下的各种内存攻击. DVRF: ...

  7. 二分查找总结及部分Lintcode题目分析 2

    Search in a big sorted array,这个比之前的二分法模板多了一个很不同的特性,就是无法知道一个重要的条件end值,也是题目中强调的重点 The array is so big ...

  8. 【算法】题目分析:Aggressive Cow (POJ 2456)

    题目信息 作者:不详 链接:http://poj.org/problem?id=2456 来源:PKU JudgeOnline Aggressive cows[1] Time Limit: 1000M ...

  9. *CTF babyarm内核题目分析

    本文从漏洞分析.ARM64架构漏洞利用方式来讨论如何构造提权PoC达到读取root权限的文件.此题是一个ARM64架构的Linux 5.17.2 版本内核提权题目,目的是读取root用户的flag文件 ...

随机推荐

  1. [github] 创建个人网页

    创建 github.io 的个人子域名网页,其实非常简单,只需要两步: 1)创建名为 username.github.io 的代码仓库 2)把网页代码上传到代码库中 在 username.github ...

  2. validate方法配置项

    validate()方法配置项 submitHandler 通过验证后运行的函数,可以加上表单提交的方法 invalidHandler 无效表单提交后运行的函数 ignore 对某些元素不进行验证 r ...

  3. css倒三角的几种实现方式

    在网页中,你在很多地方都能看到倒三角,比如tooltips,下拉菜单等.大家有几种方式来实现呢? 1.BASE64编码 图片 假如你已经有了三角形的图片,并且减少HTTP请求,那么将这个图片转换成一个 ...

  4. Android使用DOM生成和输出XML格式数据

    Android使用DOM生成和输出XML格式数据 本文主要简单解说怎样使用DOM生成和输出XML数据. 1. 生成和输出XML数据 代码及凝视例如以下: try { DocumentBuilderFa ...

  5. Jinja2模版语言自定义filter的使用

    Jinja2模版语言,自带有一些filter,能够在前端的模版中控制数据按照相应的方式显示.比如以下两种filter,分别能在前端控制数字的近似精度显示和根据字符串长度补齐: round(value, ...

  6. 动态规划晋级——POJ 3254 Corn Fields【状压DP】

    转载请注明出处:http://blog.csdn.net/a1dark 分析:刚开始学状压DP比较困难.多看看就发现其实也没有想象中那么难.这道题由于列数较小.所以将行压缩成二进制来看.首先处理第一行 ...

  7. Android 使用加速度传感器实现摇一摇功能及优化

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用: 1.首先获得 ...

  8. Linux开发工具之Makefile(下)

    二.Makefile(下) 01.make常用内嵌函数 函数调用   $(function arguments) $(wildcard PATTERN)   当前目录下匹配模式的文件   例如:src ...

  9. 向量旋转 UPC 2217

    这道题目是13山东省省赛的签到题,题目大意是给等边三角形的两个定点,让求逆时针旋转之后的第三个点的坐标,原来不会向量的旋转,在网上找了找,找到一篇挺好的,直接贴过来. 向量的旋转 实际做题中我们可能会 ...

  10. Python之路,Day15 - Django适当进阶篇

    Python之路,Day15 - Django适当进阶篇   本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣 ...