class Child extends Parent{
}
哪些方法可以加入类Child中?
A.int addValue(int a,int b){//do something...}
B.public void addValue(){//do something...}
C.public int addValue(int a){//do something...}
D.public int addValue(int a,int b)throws MyException{//do something...}
答案bc
此题涉及方法重载(overload),方法重写(override)以及类派生时方法重写的规则。方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int和long,float和double就不能作为唯一的类型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和c++中不同,c++中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。此题中答案a的错误就是重写的访问权限比被重写的方法的低,而b,c都属于重载,d的错误在于比被重写的方法抛弃了更多种类的异常。
17.共有成员变量MAX_LENGTH是一个int型值,变量的值保持常数值100。使用一个短声明定义这个变量。(单选题)
A.public int MAX_LENGTH=100;
B.final int MAX_LENGTH=100;
C.final public int MAX_LENGTH=100;
D.public final int MAX_LENGTH=100。
答案d
Java中共有变量使用public定义,常量变量使用final,另外注意的是修饰符的顺序,一个最完整的修饰是public static final int varial_a=100;这个顺序不能错,这和c++中也是不同的。而答案c恰恰错在修饰符的顺序上。
18.下面的那个java源文件代码片断是对的?(多选题)
A.package testpackage;
public class Test{//do something...}
B.import java.io.*;
package testpackage;
public class Test{//do something...}
C.import java.io.*;
class Person{//do something...}
public class Test{//do something...}
D.import java.io.*;
import java.awt.*;
public class Test{//do something...}
答案acd
java中的package语句必须是源文件中除去说明以外的第一条语句,导入包语句可以有几个,但是必须位于package语句之后,其它类定义之前,一个源文件中可以有几个类,但最多只能有一个是public的,如果有,则源文件的文件名必须和该类的类名相同。
19.下面的哪些声明是合法的?(多选题)
A.long l=4990;
B.int i=4L;
C.float f=1.1;
D.double d=34.4;
E.double t=0.9F.
答案ade
此题的考点是数字的表示法和基本数据类型的类型自动转换,没有小数点的数字被认为是int型数,带有小数点的数被认为是double型的数,其它的使用在数字后面加一个字母表示数据类型,加l或者L是long型,加d或者D是double,加f或者F是float,可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将int,short,byte赋值给long型时不需要显式的类型转换,反之,将long型数赋值给byte,short,int型时需要强制转换(int a=(int)123L;)。
20.如下描述:(多选题)
public class Parent{