单选题ClassOne.java   package com.abc.pkg1;   public class ClassOne {   private char var = ‘a‘;   char getVar() {return var;}   }   ClassTest.java   package com.abc.pkg2;   import com.abc.pkg1.ClassOne;   public class ClassTest extends ClassOne {  public sta

题目
单选题
ClassOne.java   package com.abc.pkg1;   public class ClassOne {   private char var = ‘a‘;   char getVar() {return var;}   }   ClassTest.java   package com.abc.pkg2;   import com.abc.pkg1.ClassOne;   public class ClassTest extends ClassOne {  public static void main(Stringargs) {  char a = new ClassOne().getVar();  char b = new ClassTest().getVar();   }   }   What is the result?()
A

 Compilation will fail.

B

 Compilation succeeds and no exceptions are thrown.

C

 Compilation succeeds but an exception is thrown at line 5 in ClassTest.java.

D

 Compilation succeeds but an exception is thrown at line 6 in ClassTest.java.

参考答案和解析
正确答案: B
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序:includeusing namespqce Std;class TestClass{private;Char C;public;Tes

有如下程序: #include<iostream> using namespqce Std; class TestClass { private; Char C; public; TestClass(char n):c(n){} ~TestClass() { cout<<c; }; class TestClassl:public TestClass { private: Char C; public:

A.xy

B.yx

C.x

D.y


正确答案:A
解析: 本题中TestClass为基类,TestClassl为派生类。在主函数中定义TestClassl对象obj(‘x’),“TestClassl(char n):TestClass(n+1),c(n){}”,所以选输出x,然后调用基类构造函数,’x’+1=‘y’,所以输出y,即答案为xy。

第2题:

有以下程序includeincludeusing namespace std;class base{private:charbas

有以下程序 #include<iostream> #include<string> using namespace std; class base { private: charbaseName[10]; public: base() { strcpy(baseName,"Base"); } virtual char*myName() return baseName; } char *className() { return baseName; } }; class Derived: public base { private: char derivedName[10]; public: Derived() { strcpy(derivedName,"Derived"); } char *myName() { return derivedName; } char *className() { return derivedName; } }; void showPtr(base &p) { cout<<p.myName0<<" "<<p.className(); } int main() { base bb; Derived dd; showPtr(dD) ; retum 0; } 动行后的输出结果为

A.Derived Base

B.Base Base

C.Derived Derived

D.Base Derived


正确答案:A
解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。main()函数中定义了一个基类对象bb和一个派生类对象dd。从程序中可看出派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数。所以在函数showPtr中调用的myName函数为派生类的成员函数myName,从而输出Derived。然后输出className,即基类名称Base。

第3题:

( 13 )有如下程序:

#include <iostream>

using namespace std;

class GrandChild{

public:

GrandChild(){ strcpy (name,"Unknown"); }

const char * getName()const { return name; }

virtual char * getAddress()const=0;

private:

char name[20];

};

class GrandSon : public GrandChild{

public:

GrandSon{char *name} {}

Char * getAddress() const { return "Shanghai";}

};

int main(){

GrandChild *gs=new GrandSon("Feifei");

cout<<gs->getName()<<" 住在 "<<gs->getAddress()<<endl;

delete gs;

return 0;

}

运行时的输出结果是 【 13 】 。


正确答案:

第4题:

下列程序段中,正确的是______。 ①class MvClass { int var = 100; static int getVar() { return var; } } ②public class MyClass { final int date; void MyClass (int d) { date = d; } } ③public class MyMain { public static void main(String args[]) { System.out.println(Myclass1.date); } } class MyClass1 { int data = 10; } ④class IamAbstract { final int f; double d; abstrct void method(); }

A.②④

B.①③

C.②

D.以上都不对


正确答案:D

第5题:

有以下程序include include using namespace std;class base{private:char

有以下程序 #include <iostream> #include <string> using namespace std; class base { private: char baseName[10]; public: base () { strcpy(baseName,"Base"); } virtual char *myName() { return baseName; } char *className() { return baseName; } }; class Derived : public base { private: char derivedName[10]; public: Derived() { strcpy(derivedName,"Derived"); } char *myName() { return derivedName; } char *className() { return derivedName; } }; void showPtr(base &p) { cout<<p.myName () <<" "<<p.className (); } int main () { base bb; Derived dd; showPtr(dd); return 0; } 运行后的输出结果为

A.Derived Base

B.Base Base

C.Derived Derived

D.Base Derived


正确答案:A
解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。main()函数中定义了一个基类对象bb和一个派生类对象dd。从程序,中可看出派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数。所以在函数 showPtr中调用的myName函数为派生类的成员函数 myName,从而输出Derived。然后输出className,即基类名称Base。

第6题:

下列哪个选项的java源文件代码片段是不正确的?

A.package testpackage; public class Test{ }

B.import java. io. *; package testpaekage; public class Test { }

C.import java.io.*; class Person { } public class Test { }

D.import java.io.*; import java. awt.*; public class Test{ }


正确答案:B
解析:Java中的package语句必须是源文件中除去说明以外的第一条语句,导入包语句可以有几个,但是必须位于package语句之后,其他类定义之前,一个源文件中可以有几个类,但最多只能有一个是public的,如果有,则源文件的文件名必须和该类的类名相同。

第7题:

有如下程序:includeusing namespace std;class TestClass{private;char c;public;Tes

有如下程序: #include<iostream> using namespace std; class TestClass { private; char c; public; TestClass (char n):c(n){} ~TestClass () { cout<<c; } }; class TestClass1:public TestClass { Private: char c; public: TestClass1(char n):TestClass (n+1),c(n){} ~TestClass1() { cout<<c; } }; int main() { TestClass1 obj('x'); return 0; } 执行上面的程序输出( )。

A.xy

B.yx

C.x

D.y


正确答案:A
解析:题目中程序TestClass为基类,TestClass1为派生类。在主函数中定义TestClass1对象obj('x'),“TestClass1(charn):TestClass(n+1),c(n){}”,所以先输出x,然后调用基类构造函数,'x'+1='y',所以输出y,即答案为xy。

第8题:

下列Java源程序结构中前三种语句的次序,正确的是

A.import, package, public class

B.import必为首,其他不限

C.public class, import, package

D.package, import, public class


正确答案:D
解析:Java源程序中,首先在程序的最开始用关键字package指明此程序属于哪个包,接着通过import导入外部包中的类或JDK中的类,然后定义类,如public class。

第9题:

有以下程序inclube class ClassOne{public: ClassOne(int v=O) { i=v;cout<

有以下程序 #inclube <iostream.h> class ClassOne { public: ClassOne(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} }; class ClassTwo { public: ClassTwo(int v=O) { i=v;cout<<i;} void print(){ cout<<i<<end1;} private: ClassOne myObj; int i; }; void main() { ClassTwo obj(1); obj.print(); }

A.11

B.111

C.110

D.101


正确答案:A
解析:类ClassTwo中定义了成员对象myObj,所以在构造类ClassTwo的对象obj时会先调用类ClassOne的构造函数输出0,然后调用ClassTwo的构造函数输出1。主函数最后调用obj的成员函数print()输出1。所以最后结果为011。

第10题:

有以下程序:includeusing namespace std;class BASE{private: char c;public: BASE(c

有以下程序: #include <iostream> using namespace std; class BASE { private: char c; public: BASE(char n):c(n);{} virtual~BASE() { cout<<c; } }; class DERIVED:public BASE { char c; p

A.XY

B.YX

C.X

D.Y


正确答案:A
解析:在C++中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数结束时,派生类DERIVED对象obj将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出X,然后调用基类的析构函数,输出Y。

更多相关问题