类ClassB从ClassA派生,那么ClassA*a=newClassB(…);试问该表达是否合法?为什么?

题目
问答题
类ClassB从ClassA派生,那么ClassA*a=newClassB(…);试问该表达是否合法?为什么?
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序: #include<iostream> usingnamespacestd; classA{ public: A( ){cout<<"A";} }; classB{public:B( ){cout<<"B";}}; classC:publicA{ Bb; public: C( ){cout<<"C";} }; intmain( ){Cobj;return0;} 执行后的输出结果是( )。

A.CBA

B.BAC

C.ACB

D.ABC


正确答案:D
D。【解析】本题考查的是类的继承和派生。系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化,然后对派生类中的新增成员初始化。

第2题:

InwhichtwocasesdoesthecompilersupplyadefaultconstructorforclassA?()

A.classA{}

B.classA{publicA(){}}

C.classA{publicA(intx){}}

D.classZ{}classAextendsZ{voidA(){}}


参考答案:A, D

第3题:

下面程序输出的结果为( )。

include"iostream.h"

classA

{public:

A(){cOUt<<"CLASSA"<<endl;}

~A(){}};

ClaSSB:publicA

{public:

B(){cout<<"CLASSB"<<endl;}

~B(){}};

voidmain()

{A*P;

P=newB:

B*q:

q=newB;}

A.CLASSA

B.CLASSACLASSBCLASSBCLASSB

C.CLASSA

D.CLASSACLASSBCLASSBCLASSACLASSBCLASSBCLASSB


正确答案:C

C。【解析】本题考查类的继承、类的实例化和构造函数、析构函数的调用方式以及何时调用。每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。

第4题:

下面程序段的输出结果为( )。 package test; public class ClassA { int x=20: static int y=6; public static void main(String args[]) { ClassB b=new ClassB; go(10); System.out.println("x="+b.x); } } class ClassB { int X; void go(int y) { ClassA a=new ClassA; x=a.Y ; } }

A.x=10

B.x=20

C.x=6

D.编译不通过


正确答案:C
C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的90方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量Y的值。从main方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给X和Y赋值,X=a.Y后,X值为6,再返回去执行System.out.println("x="+b.x)语句,输出为x=6,可见,正确答案为选项C。

第5题:

下面程序段的输出结果为 package test; public class ClassA { int x=20; static int y=6; public static void main(String args[]) { ClassB b=new ClassB(); b.go(10); System.out.println("x="+b.x); } } class ClassB { int x; void go(int y) { ClassA a=new ClassA(); x=a.y; } }

A.x=10

B.x=20

C.x=6

D.编译不通过


正确答案:C
解析:本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个static int y=6类变量,在ClassA中调用的 b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的go方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量y的值。从main()方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用 ClassA,会给x和y赋值,x=a.y后,x值为6,再返回去执行System.out.println("x="/b.x)语句,输出为x=6,可见,正确答案为选项C。

第6题:

Whatproducesacompilererror?()

A.classA{publicA(intx){}}

B.classA{}classBextendsA{B(){}}

C.classA{A(){}}classB{publicB(){}}

D.classZ{publicZ(int){}}classAextendsZ{}


参考答案:D

第7题:

classA{A(){}}classBextendsA{}Whichtwostatementsaretrue?()

A.ClassB’sconstructorispublic.

B.ClassB’sconstructorhasnoarguments.

C.ClassB’sconstructorincludesacalltothis().

D.ClassB’sconstructorincludesacalltosuper().


参考答案:B, D

第8题:

publicclassSomeException{}Classa:publicclassa{publicvoiddoSomething(){}}Classb:publicclassbextendsa{publicvoiddoSomething()throwsSomeException{}}Whichistrueaboutthetwoclasses?()

A.Compilationofbothclasseswillfail.

B.Compilationofbothclasseswillsucceed.

C.Compilationofclassawillfail.Compilationofclassbwillsucceed.

D.Compilationofclassawillfail.Compilationofclassawillsucceed.


参考答案:D

第9题:

下面程序的运行结果为( )。 #include<iostream.h> ClassA { public:A( ){cout<<"1";} ~A( ){cout<<"2";} }; ClassB:public:A { public: B( ){cout<<"3";} ~B( ){cout<<"4";} }; Voidmain( ) { Bb; }

A.1234

B.1324

C.1342

D.3142


正确答案:C
C。【解析】本题考查在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。

第10题:

PHP 类的使用

$a=new A('刘');

$a->test();

class   A{

   protected $name;

  public function _construct($iname)

  {

      $this->name=$iname;

  }

  public function test ()

  {

    echo $this—>name;

  }

}

//如以上代码,为什么不能正常显示出名字?


echo $this—>name;改成 echo $this->name;大小写问题


希望能帮到你,别忘了采纳我的答案哦,祝你生活愉快!



更多相关问题