Java认证考试

public class Parent{     public void change(int x){} }  public class Child extends Parent{     //覆盖父类change方法  }  下列哪个声明是正确的覆盖了父类的change方法?() A、 protected void change(int x){}B、 public void change(int x, int y){}C、 public void change(String s){}D、 public

题目

public class Parent{     public void change(int x){} }  public class Child extends Parent{     //覆盖父类change方法  }  下列哪个声明是正确的覆盖了父类的change方法?() 

  • A、 protected void change(int x){}
  • B、 public void change(int x, int y){}
  • C、 public void change(String s){}
  • D、 public void change(int x){}
参考答案和解析
正确答案:D
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列选项中的 方法可以正确地加入类Child中,且父类的方法不会被覆盖。 public class Parent{ public int addValue(int a,int b){ int s; s=a+b; return s; } } class Child extends Parent{ }

A.int addValue(int a,int b){∥do something…}

B.public void addValue( ){∥do something…}

C.public int addValue(int a,int b)throws MyException{∥do something…}

D.public float addValue(int a,int b,float b=1.0){∥do something…}


正确答案:B
解析: 选项A的错误就是重写的访问权限比被重写的方法的权限低,而B属于重载,选项 C的错误在于比被重写的方法抛弃了更多种类的异常。选项D中,当只传递两个变量的值时,系统不知道到底调用哪一个方法,因为b为常量,可以不指定,所以只有选项B符合题意。

第2题:

下列哪个方法可用于创建一个可运行的类? ( )

A.public class X implements Runable {public void run(){...,.,}}

B.public class X implements Thread {public void run(){......}}

C.public class X implements Thread {public int run(){……}}

D.public class X implements Runable {protected void run(){.....}}


正确答案:A

第3题:

能将程序补充完整的选项是( )。class Person{ private int a; public int change(int m){ return m; }}public class Teacher extends Person{ public int b; public static void main(String arg[]) { Person p = new Person(); Teacher t = new Teacher(); int i; ______ }} B.

A.i=m

B.i=b

C. i=p.a

D.i=p. change(50)


正确答案:D

第4题:

interface A{

int x = 0;

}

class B{

int x =1;

}

class C extends B implements A {

public void pX(){

System.out.println(x);

}

public static void main(String[] args) {

new C().pX();

}

}


正确答案:

 

错误。在编译时会发生错误(错误描述不同的JVM 有不同的信息,意思就是未明确的

x 调用,两个x 都匹配(就象在同时import java.util 和java.sql 两个包时直接声明Date 一样)。

对于父类的变量,可以用super.x 来明确,而接口的属性默认隐含为 public static final.所以可

以通过A.x 来明确。

第5题:

如下的类定义,括号里应填( )。 class Myclass { public: MyClass(int a =0,int b =0) { X=a; Y=b; void Change ( ) const { X- =10; Y+ =10; public: ( )int X,Y;

A.static

B.const

C.mutable

D.可以不添内容


正确答案:C
解析:常成员函数一般不能修改对象的数据成员的值,如果一定要修改,必须得在被修改的数据成员定义前加上关键字mutable。

第6题:

有如下程序段: public class Parent { public int addValue (int a,intB){ int s; s=a+b; return 3; } } class Child extends Parent {} 则下列选项中,可以正确加入类Child中且父类的方法不会被覆盖的是( )。

A.int addValue (int a,intB){//do something...}

B.public void addValue() {//do something...}

C.public int addValue (int a,intB)throws MyException {//do something...}

D.public float addValue (int a,int b,float b=1.0) {//do someting...}


正确答案:B
解析:此题涉及方法重载(overload)、方法重写(override)以及类派生时方法重写的规则方法重载的规则是:
(1)参数列表必须不同,参数个数不同完全可以,如果个数相同,则参数类型的不同不会引起歧义,例如int和long、float和double就不能作为唯一的类型不同;
(2)返回值可以不同,但是不能是重载时唯一的不同点 (这点和C++中不同,C++中返回类型必须一致)。
方法重写发生在类继承时,子类可以重写父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,Java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!
重写的另一个规则是重写的方法不能比被重写的方法抛出(throws)更多种类的异常,其抛出的异常只能少,或者是其子类,不能以抛出异常的个数来判断种类,而应该是异常类层次结果上的种类。
此题中选项A的错误就是重写的访问权限比被重写的方法的低,而B属于重载,选项C的错误在于比被重写的方法抛弃了更多种类的异常。选项D中,当只传递两个变量的值的时候,系统就不知道到底调用哪个方法了,因为b为常量,可以不指定。所以只有选项B是符合题意的。

第7题:

已知如下类定义: class Base { public Base (){ //... } public Base ( int m ){ //... } protected void fun( int n ){ //... } } public class Child extends Base{ // member methods } 如下哪句可以正确地加入子类中?()

A.private void fun( int n ){ //...}

B.void fun ( int n ){ //... }

C.protected void fun ( int n ) { //... }

D.public void fun ( int n ) { //... }


正确答案:CD

第8题:

能将程序补充完整的选项是______。 class Person{ private int a; phblic int change(int m){return m;} } public class Teacher extends Person{ public int b; public static void main(String arg[ ]){ Person p=new Person( ); Teacher t=new Teacher( ); int i; ______; } }

A.i=m

B.i=b

C.i=p.a

D.i=p.change(50)


正确答案:D
解析: 选项B中虽然b是类Teacher的public成员变量,但在静态方法中,不能使用类中的非静态成员;选项C中的a是Person类的private成员,不能在类外直接引用;选项D中的change(int m)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。

第9题:

能将程序补充完整的选项是 class Person { private int a; public int change(int m){return m; } } public class Teacher extends Person { public int b; public static void main(String arg[]) { Person p=new Person(); Teacher t=new Teacher(); int i; ______ } }

A.i=m

B.i=b

C.i=p.a

D.i=p.change(50)


正确答案:D
解析:本题考查类的声明。选项A中m没有被声明过,不能使用;选项B中虽然b是类Teacher的public成员变量,但在静态方法中,不能使用类中的非静态成员;选项C中a是类Person的private成员,在类外不能直接引用;选项D中change(int m)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。

第10题:

有如下类的定义。空格处的语句是class MyClass{ ______ int x, y;public: MyClass(int a=0, int b=0) { x=a; y=b; } static void change() { x-=10; y-=10; }};

A.static

B.const

C.private

D.不需要填入内容


正确答案:A
解析:本题考核静态数据成员和静态成员函数。类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数 change()访问了类MyClass的数据成员x和y,只能把x和y定义为静态数据成员。

更多相关问题