public class Parent{   public void change(int x){}  }   publ

题目
单选题
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){}

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

第1题:

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

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

第2题:

下列程序的运行结果是______。include class Base { public: void f(int x){cout<<“B

下列程序的运行结果是______。

include<iostream.h>

class Base

{

public:

void f(int x){cout<<“Base:”<<x<<endl;}

);

class Derived:public Base

{

public:

void f(char*str){cout<<“Derived:”<<str<<endl;}

};

void main(void)

{

Base*pd=ne


正确答案:Base:97。
Base:97。 解析: 本题主要考查两个知识点,一是基类指针可以指向派生类对象,并可以访问派生类的所有成员。二是在函数重载中进行隐式类型转换。如pd->f(‘a’);系统到底调用哪个重载函数呢?实参既不是派生类中的形参,也不是基类中f函数的形参类型。此时系统根据就近原则和从高优先级到低优先级的规则尝试隐式转换。单字符更接近整数,故调用的是基类的f函数。

第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题:

若有以下程序:includeusing namespace std;class data{public: int x; data(int x){

若有以下程序: #include<iostream> using namespace std; class data { public: int x; data(int x) { data::x=x; } class A private: data dl; public: A(int x): dl(x){ } void dispaO cout<<dl.x<<","; } }; class B: public A { private: data d2; public: B(int x):A(x-1),d2(x){ } void dispb() { cout<<d2.x<<endl; } }; class C: public B { public: C(int x):B(x-1){ } void disp0 { dispa(); dispb(); } }; int main() { C obj(5); obj.disp(); return 0; } 程序执行后的输出结果是( )。

A.5,5

B.4,5

C.3,4

D.4,3


正确答案:C

第5题:

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 来明确。

第6题:

如下的类定义,括号里应填( )。 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。

第7题:

以下程序的执行结果是______。 include class A{ int a: public: void seta(int x) {

以下程序的执行结果是______。

include<iostream.h>

class A

{

int a:

public:

void seta(int x) {a=x;}

void showa() {cout<<a<<end1;}

};

class B

{

int b;

public:

void setb(int x) {b=x;}

void showb(){cout<<b<<end1;}

};


正确答案:1 3
1 3

第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题:

有以下程序: include class A { intx; public: A(int a) { x=a;} friend class B;

有以下程序:

include<iostream.h>

class A

{

int x;

public:

A(int a)

{

x=a;

}

friend class B;

}

class B{

public:

void print(A a){

a. x--;

cout<<a.x<<end1;

}

};

void main()

{

A a(10);

B b;

b.print(a) ;

}

程序执行后的输出结果是【 】。


正确答案:9
9 解析:本题考核友元类的应用。在程序中,类B是类A的友元类,因此,在类B的所有成员函数中均可访问类A的任何成员。在main()中,先定义类A的一个对象a(10)和类B的一个对象b。然后通过对象b调用其成员函数print输出对象a的私有成员x的值减1即9。

第10题:

下面程序运行的结果是()。includeusing namespace std;class A{ protected:int a; pub

下面程序运行的结果是( )。 #include<iostream> using namespace std; class A{ protected: int a; public: void input(int i) {a=i;} }; class B{ protected: int a; public: void input(int j) {a=j;} }; class C: public A, public B { int x; public: void input() {x=A::a * B::a;cout<<x<<endl;} }; void main() { C c; c.A::input(5); c.B::input(8); c.input(); }

A.5

B.8

C.40

D.编译出错


正确答案:C
解析:用成员名限定法来消除二义性,故答案为C。

更多相关问题