public class Parent {  public int addValue( int a, int b) { 

题目
多选题
public class Parent {  public int addValue( int a, int b) {     int s;     s = a+b;     return s;     }     }  class Child extends Parent {  }  Which methods can be added into class 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...}

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序段: 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是符合题意的。

第2题:

在如下源代码文件Test.java中, 哪个是正确的类定义?()

A.public class test { public int x = 0; public test(int x) { this.x = x; } }

B.public class Test{ public int x=0; public Test(int x) { this.x = x; } }

C.public class Test extends T1, T2 { public int x = 0; public Test (int x) { this.x = x; } }

D.public class


正确答案:BD

第3题:

有如下程序:

#include

using namespace std;

class PARENT

{

public:

PARENT(){cout<<"PARENT";}

};

class SON:public PARENT

{

public:

SON(){cout<<"SON";}

};

int main()

{

SON son;

PARENT *p;

p = &son;

return 0;

}

执行上面程序的输出是 【 12 】 。


正确答案:

第4题:

有如下程序: include using namespace std; class PARENT { public: PARENT() { cout

有如下程序:

include <iostream>

using namespace std;

class PARENT

{

public:

PARENT() { cout <<"PARENT"; }

};

class SON : public PARENT

{

public:

SON() {cout << "SON"; }

};

int main()

{

SON son;

PARENT *p;

p = &son;

return 0;

}

执行上面程序的输出是______。


正确答案:PARENTSON
PARENTSON 解析:此题考查的是派生类的构造。主函数开始在定义SON类的对象son时,会先执行PARENT类的构造函数再执行SON类的构造函数,输出 “PAKENTSON”;接下来的语句定义PARENT和让指针p指向son对象,都并未创建任何对象,所以不会调用构造函数。故最终的输出结果是:PARENTSON。

第5题:

在下列源代码文件Test.java中,正确定义类的代码是( )。

A.pblic class test { public int x=0; public test(int x) { this. x=x;} }

B.public class Test { public int x=0; public Test(int x) { this. x=x;} }

C.public class Test extends T1,T2{ public int x = 0; public Test(int x){ this. x = x; } }

D.protected class Test extends T2{ public int x = 0; public Test(int x) { this. x = x; } }


正确答案:B
解析:本题主要考查类声明格式为[修饰符]class类名[extends父类名][implements类实现的接口列表],选项A中源文件名与程序名不相同,Java不支持多重继承所以选项C错误,选项D中类的访问权限不对,应为public。

第6题:

下面这个程序的结果是includeclass A{private:int a;public:void seta();int geta(

下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta();int geta();}; void A∷seta() {a=1;} int A∷geta() {return a;} class B { pnvate: int a; publiC: void sera();int geta();}; void B∷seta() {a = 2;} int B∷geta() {return a;} class C:public A,public B { private: int b; public: void display();}; void C∷display() { int b=geta(); cout<<b;} void main() { C c; c.seta(); c.display();}

A.1

B.2

C.随机输出1或2

D.程序有错


正确答案:D
解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第7题:

下面这个程序的结果是 include class A { private: int a; public: void seta( ) ;

下面这个程序的结果是

#include<iostream.h>

class A

{

private:

int a;

public:

void seta( ) ;int geta( ) ;};

void A: :seta( )

{ a=1;}

int A: :geta( )

{ retum a;}

class B

{ private:

int a;

public:

void seta( ) ;int geta( ) ;};

void B: :seta( )

{a=2;}

int B: :geta( )

{return a;}

class C: public A,public B

{ private:

int b;

public:

void display( ) ;};

void C: :display( )

{ int b=geta( ) ;

cout < < b;}

void main( )

{ C c;

c. seta( ) ;

c. display( ) ;}

A.1

B.2

C.随机输出1或2

D.程序有错


正确答案:D
解析:在类A中有geta( ) 函数,在类B中也有geta( ) 函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

第8题:

下列选项中的 方法可以正确地加入类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符合题意。

第9题:

若有以下程序:includeusing namespace std;class sample{private:int n;public:sampl

若有以下程序: #include<iostream> using namespace std; class sample { private: int n; public: sample(){} sample(int m) { n=m; } void addvalue(int m) { sample s; s.n=n+m; *this=s; } void disp() { cout<<"n"=<<n<<end1; } }; int main() { sample s(10); s.addvalue(5); s.disp(); return 0; } 程序运行后的输出结果是

A.n=10

B.n=5

C.n=15

D.n=20


正确答案:C
解析:本题考核this指针的应用。上述程序中sample类定义了一个addvalue非静态成员函数。addvalue函数的原型是:voidaddvalue(sample*this,intm);,该函数的第一个参数是执行该类对象的一个指针即this指针。由于这个参数是系统隐含的,所以我们在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过this访问这—参数。上述程序的最后输出结果是15。

第10题:

类testl定义如下: public class test1 { public float amethod(float a,float b){ } }

A.public foat amethod(float a,float b,foat c){ }

B.public float amethod(float c,float d){ }

C.public int amethod(int a,int b){ }

D.private float amethod(int a,int b,int c){ }


正确答案:B

更多相关问题