面向对象基础测试题和答案

合集下载

面向对象试题(标准答案)

面向对象试题(标准答案)

CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。

A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

C++面向对象程序设计(试题与答案)

C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。

()2.运算符+=是右结合的。

()3.表达式cout<<99的类型为int。

()4.++i是左值,但i++不是左值。

()5.Y[I][J]与*(*Y+I)+J不等价。

()6.从外部看类的private 成员和protected成员有区别。

()7.运算符&不可以重载。

()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。

()9.2.0/-3.0是一个正确的表达式。

()10.字符'\12'的ASCII为12。

二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。

自测题-8(面向对象一)(答案)

自测题-8(面向对象一)(答案)

自测题-8(面向对象一)(答案)C/C++测试题面向对象选择题:C++概述1、以下C++新增的关键字为。

A break B continue C stuctD inline //答案:D2、面向对象程序设计将数据与______放在一起,作为相互依存、不可分割的整体来处理。

A对数据的操作B信息C数据隐藏D数据抽象//答案:A3、面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性和______。

A 软件生产率的提高B 精化已有的代码C 共享代码D 编写可重用代码//答案:A4、面向对象系统的______是一种信息隐藏技术,目的在与将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象去做即可。

A多态性B 封装性C继承性D复用性//答案:B5、______不是面向对象系统所包含的要素A重载B对象C 类D继承//答案:A6、关于C++与C语言的关系的描述中,______是错误的。

A C语言是C++的一个子集B C++与C语言是兼容的C C++对C语言进行了一些改进D C++与C语言都是面向对象的//答案:D7、下面关于对象概念的表述中,______是错误的。

A 对象就是C语言中的结构变量B 对象代表着正在创建的系统中的一个实体C 对象是一个状态和操作(或方法)的封装体D 对象之间的信息传递是通过信息进行的//答案:A8、下面关于类概念的表述中,______是错误的。

A 类是抽象数据类型的实现B 类是具有共同行为的若干对象的统一描述体C 类是创建对象的样板D 类就是C语言中的结构类型//答案:D9、下列关于C++类的描述中错误的是______。

A 类与类之间可以通过一些手段进行通信和联络 B 类用于描述事物的属性和对事物的操作C 类与类之间必须是平等关系,而不能组成层次关系D 类与类之间可以通过封装而具有明确的独立性//答案:C10、下列关键字中,_______既在C语言中使用,又在C++语言中使用 A inline B break C private D public //答案:B11、C++对C语言做了很多改进。

java面向对象编程练习题及答案

java面向对象编程练习题及答案

java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。

2. 描述Java中的继承是如何工作的,并给出一个继承的例子。

3. 解释Java中的多态性,并给出一个多态性的例子。

三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。

2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。

3. 创建一个名为`VehicleTest`的类,它包含`main`方法。

在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。

四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。

面向对象基础_参考题答案

面向对象基础_参考题答案

⾯向对象基础_参考题答案⼀、【必做题】1.(1)定义⼀个⼈类Person:1)定义⼀个⽅法sayHello(),可以向对⽅发出问候语“hello,my name is XXX”2)有三个属性:名字、⾝⾼、体重(2)定义⼀个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调⽤对象的sayHello()⽅法。

(答案:Person.java、PersonCreate.java)2.(1)定义⼀个⼈类Person:1)定义⼀个⽅法sayHello(),可以向对⽅发出问候语“hello,my name is XXX”2)有三个属性:名字、⾝⾼、体重3)通过构造⽅法,分别给三个属性赋值(2)定义⼀个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调⽤对象的sayHello()⽅法。

(答案:Constructor.java、或者是Person3.java)3.(1)定义⼀个矩形类Rectangle:1)定义三个⽅法:getArea()求⾯积、getPer()求周长,showAll()分别在控制台输出长、宽、⾯积、周长。

2)有2个属性:长length、宽width3)通过构造⽅法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义⼀个点类Point,包含2个成员变量x、y分别表⽰x和y坐标,2个构造器Point()和Point(int x0,y0),以及⼀个movePoint(int dx,int dy)⽅法实现点的位置移动。

()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写⼀个程序,创建两个Point对象p1、p2,分别调研movePoint⽅法后,打印p1和p2的坐标。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。

答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。

面向对象编程的主要特点包括封装、继承和多态。

封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。

继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。

多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。

面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。

通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。

2. 试题二题目:什么是类?请简要描述类的特点和组成部分。

答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。

类是用来创建对象的蓝图,可以通过实例化类来创建对象。

类的特点包括了封装、继承和多态。

类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。

继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。

多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。

类的组成部分包括了属性(Field)和方法(Method)。

属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。

方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。

3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。

答案:传值和传引用是在方法调用时,参数传递的两种方式。

java面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是A.300 300B.100 100C.300 100D.100 3002.程序执行的结果是:::x =" + x++; }}A.doStuff:x =7B. main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:A.cB.iC.dD.s5.程序执行的结果是:A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:A.输出:0000B.输出:4321C.代码public EmployeeString id {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo { / more code here / }B. protected void foo { / more code here / }C. public void foo { / more code here / }D. private void foo { / more code here / }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:public class Base { public static final String FOO = "foo";A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount;public double getCommision {return getSalesAmount 0.15;estA {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount { return 1230.45; }B.public double getSalesAmount { return 1230.45; }C.private double getSalesAmount { return 1230.45; }D.protected double getSalesAmount { return 1230.45; }20.关于下列代码说法正确的是:public interface A { public void doSomethingStringthing;}public class AImpl implements A { public void doSomethingString msg { }}public class B { public A doit { return null; } public String execute { return null; }}public class C extends B { public AImpl doit { return null; } public Object execute { return null; }} A. 所有类和接口都编译成功 B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A { public void aMethod;}interface B { public void bMethod;}interface C extends A, B { public void cMethod;}class D implements B { public void bMethod {}}class E extends D implements C { public void aMethod {} public void bMethod {} public void cMethod {}}A.编译失败B.如果定义D e = new E;, 那么 e.bMethod;调用D类的bMethod方法C.如果定义D e = Dnew E;, 那么 e.bMethod;调用D类的bMethod方法D.如果定义D e = Dnew E;, 那么 e.bMethod;调用E类的bMethod方法22.请看下列代码:处理请求";}};}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction { public void doService;}B.public final class ServletAction { public void doService;}C.public class ServletAction { public void doService;}D. public interface ServletAction { public void doService;}23.下列代码运行的结果是:A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:A.输出:testB.输出:nullC.代码行,编译出错D.代码public String toString {行,编译出错25.请看下列代码:关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B 12,正确答案:BC 13,正确答案:C 14,正确答案:B 15,正确答案:D 16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D 21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

共40 道选择题,每题 2.5 分。

多选题有错则全错,全对才满分.面向对象部分测试题1. 下面描述函数重写错误的是 CA. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private 权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public 的2. 关于封装下面介绍错误的是( D )。

A. 封装将变化隔离B. 封装提高重用性。

C. 封装安全性D. 只有被private 修饰才叫做封装3. 试图编译运行下面的代码会发生什么情况 Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i);}}A. 错误,变量i 没有被初始化B. 输出nullC. 输出1D. 输出04. 在Java 中,下面对于构造函数的描述正确的是(D)。

A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5. 下面Java 代码的运行结果是( C )。

class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() { //是一般方法,不是构造方法health = 10;sex = " 雄";System.out.println(" 执行构造方法。

");}public void print() {System.out.println(" 企鹅的名字是" + name +" ,健康值是" + health + " ,性别是" + sex+ " 。

");}public static void main(String[] args) {Penguin pgn = new Penguin();pgn.print();}}A. 企鹅的名字是null ,健康值是10 ,性别是雄。

B. 执行构造方法。

企鹅的名字是null ,健康值是0 ,性别是null 。

C. 企鹅的名字是null ,健康值是0 ,性别是null 。

D. 执行构造方法。

企鹅的名字是null ,健康值是10 ,性别是雄。

6. class A {public int i = 10;}精品文档class B extends A{public int i = 20;}public class Test{public static void main(String args[]){B b = new B();A a = b;System.out.println(b.i);System.out.println(a.i);}}输出为多少( C)A.10 10B.10 20C.20 10D.20 207. 下面说法正确的是( D ) 。

A. 匿名内部类编译后不会生成.class 文件B. 接口编译后不会生成.class 文件C. 抽象类中没有构造方法D. 局部内部类只能访问被final 修饰的局部变量。

8. 下面对this 的作用描述错误的是 DA. 当成员变量和局部变量重名的时候可以用this 区分B. this() 语句必须放在构造函数的第一行,根据this 后面括号中的参数调用本类其他的构造函数.C. this 可以调用本类的一般函数D. this 可以调用父类的一般函数精品文档9. 在Java 中,以下程序编译运行后的输出结果为( D )。

public class Test {int x, y;Test(int x, int y) {this.x = x;this.y = y;}public static void main(String[] args) {Test pt1, pt2;pt1 = new Test(3, 3);pt2 = new Test(4, 4);System.out.print(pt1.x + pt2.x);}}A. 6B. 3 4C. 8D. 710. 在Java 语言中,下列关于类的继承的描述,正确的是( B )。

A. 一个类可以继承多个父类B. 一个类可以具有多个子类C. 子类可以使用父类的所有方法D. 子类一定比父类有更多的成员方法11. Java 中,如果类 C 是类B 的子类,类B 是类A 的子类,那么下面描述正确的是(A )。

A. C 可以继承 B 中的公有成员,同样也可以继承 A 中的公有成员B. C 只继承了 B 中的成员C. C 只继承了 A 中的成员D. C 不能继承 A 或B 中的成员12. 给定一个Java 程序Test.java 的代码如下所示,编译时,会出现以下( C )情况。

class Parent {public int count() { // 第1 行return 0;}}public class Test extends Parent {public float count() { // 第2 行return 9; // 第3 行}}A. 编译通过B. 在第1 行引发编译错误C. 在第2 行引发编译错误D. 在第3 行引发编译错误13. 给定如下一个Java 源文件Child.java ,编译并运行Child.java ,以下结果正确的是(B )。

class Parent1 {Parent1(String s){System.out.println(s);}}class Parent2 extends Parent1{Parent2(){System.out.println("parent2");}}public class Child extends Parent2 {public static void main(String[] args) {Child child = new Child();}}A. 编译错误:没有找到构造器Child()B. 编译错误:没有找到构造器Parent1() //因为当我们给出了构造方法,系统将不再提供默认的无参构造函数C. 正确运行,没有输出值D. 正确运行,输出结果为:parent214. 给定Java 程序Child.java 的代码如下所示,则编译运行该类的结果是( C )。

class Parent {Parent() {System.out.println("parent");}}public class Child extends Parent {Child(String s) {System.out.println(s);}public static void main(String[] args) {Child child = new Child("child");}}A. childB. childparentC. parentchildD. 编译错误C. Object 类中定义了toString() 方法D. Object 类在ng 包中18. 在Java 中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,下面哪一个选项不属于多态的条件( B )。

A. 子类重写父类的方法B. 子类重载同一个方法C. 要有继承或实现D. 父类引用指向子类对象19. 给定Java 代码如下所示,则编译运行后,输出结果是( C )。

class Parent {public void count() {System.out.println(10%3);}}public class Child extends Parent{public void count() {System.out.println(10/3);}public static void main(String args[]) {Parent p = new Child();p.count();}}A. 1B. 1.0C. 3D. 3.333333333333333520. 编译运行如下Java 代码,输出结果是( D )。

class Base {public void method(){System.out.print ("Base method");}}class Child extends Base{public void methodB(){System.out.print ("Child methodB");}}class Sample {public static void main(String[] args) {Base base= new Child();base.methodB();}}A. Base methodB. Child methodBC. Base method Child MethodBD. 编译错误21. 在Java 接口中,下列选项中属于有效的方法声明是( A )。

A. public void aMethod();B. final void aMethod();C. void aMethod(){}D. private void aMethod();22. 给定如下Java 程序代码,在_____横线处加入( A )语句,可以使这段代码编译通过。

interface Parent{public int count(int i);}public class Test implements Parent {public int count(int i){return i % 9;}public static void main(String[] args){________________int i = p.count(20);}}A. Test p = new Test();B. Parent p;C. Parent p = new Parent();D. Test p = new Parent();23. 下面说法中错误的是 DA. 静态代码块类一加载只执行一次,以后再创建对象的时候不执行B. 局部代码块的作用是为了限制变量的生命周期C. 构造代码块在每创建一次对象就执行一次D. 以上都不对24. 在Java 中,如果父类中的某些方法不包含任何逻辑,并且需要有子类重写,应该使用( C )关键字来声明父类的这些方法。

相关文档
最新文档