java基础及面向对象试题
- 格式:doc
- 大小:55.50 KB
- 文档页数:14
面向对象测试题及答案一、选择题(每题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`方法以显示电动汽车启动的信息。
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面向对象编程中接口与抽象类的区别,并给出使用场景。
java试题库及答案Java是一种广泛使用的高级编程语言,因其简洁、高效和跨平台性而备受程序员们的青睐。
为了帮助学习Java的同学更好地备战考试,我们特别整理了一份Java试题库及答案,希望对大家有所帮助。
一、基础知识题1. Java中基本数据类型有哪些?请简要说明各自的特点。
答:Java中的基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。
其中整型用于存储整数,浮点型用于存储小数,字符型用于存储字符,布尔型用于存储真假值。
2. Java中如何进行输入输出操作?答:在Java中,可以使用Scanner类进行输入操作,System.out.println()进行输出操作。
二、面向对象题1. 请简要说明面向对象编程的三大特性是什么?答:面向对象编程的三大特性是封装、继承和多态。
封装指的是将数据和方法封装到一个类中,通过访问修饰符来控制对外部的访问权限;继承指的是子类可以继承父类的属性和方法;多态指的是同一个方法在不同的对象下有不同的实现。
2. Java中如何实现继承?请编写一个简单的代码示例。
答:在Java中,可以通过extends关键字来实现继承。
示例代码如下:```javaclass Animal {public void eat() {System.out.println("Animal is eating");}}class Dog extends Animal {public void bark() {System.out.println("Dog is barking");}}public class Main {public static void main(String[] args) {Dog myDog = new Dog();myDog.eat();myDog.bark();}```三、异常处理题1. Java中如何处理异常?请简要说明try-catch-finally语句的作用。
Java上机操作试题一、Java基础语法1. 请简要描述Java的基本数据类型及其占用的空间大小。
2. 请编写一个Java程序,输出以下的结果:12 23 3 34 4 4 45 5 5 5 5提示:使用循环语句和嵌套循环语句。
3. 请编写一个Java程序,实现以下功能:输入两个整数a和b,输出a和b的和、差、积、商和余数。
4. 请编写一个Java程序,实现以下功能:输入一个正整数n,输出n的所有因子。
提示:可以使用循环语句和判断语句。
二、面向对象编程1. 请简要描述Java中类和对象的概念。
2. 请编写一个Java程序,实现以下功能:设计一个圆类Circle,包含一个double类型的半径属性,以及圆的面积和周长的计算方法。
提示:可以使用Math中的常量和方法。
3. 请编写一个Java程序,实现以下功能:设计一个可爱的小猫类Cat,包含一个String类型的name属性和一个void类型的cry方法,输出“喵喵喵!”。
4. 请编写一个Java程序,实现以下功能:定义一个矩形类Rectangle,包含一个int类型的长和宽属性,以及计算矩形周长和面积的方法。
提示:在构造函数中将长和宽初始化。
三、异常处理1. 请简要描述Java异常处理的基本原理。
2. 请编写一个Java程序,实现以下功能:计算两个整数相除的结果,如果除数为0,抛出异常并输出“除数不能为0!”,否则输出计算结果。
3. 请编写一个Java程序,实现以下功能:设计一个数组类,包含一个int类型的数组属性和一个获取指定位置元素的方法,如果指定位置超出范围,抛出异常并输出“数组下标越界!”,否则输出指定位置元素。
4. 请编写一个Java程序,实现以下功能:模拟登录功能,输入用户名和密码,如果用户名或密码不正确,抛出异常并输出“用户名或密码错误!”,否则输出“登录成功!”。
提示:可以使用字符串的equals方法进行字符串比较。
以上试题侧重测试Java基础语法、面向对象编程以及异常处理的掌握情况。
单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项? ()A.class Student{name;age;}B.class Student{String name = 1.0;int age = “26”;}C.class Student{String name;int age;}D.class Student{String name,int age;}3:类Student中成员方法声明正确是哪一项?()A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}4:类Student中构造方法声明正确的是哪一项? () A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}5:下列哪一项不是面向对象的三大特征之一? ()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。
B:封装是指隐藏实现细节,提高公共的访问方式。
C:类或者方法也是封装的一种体现。
D:仅仅private修饰的内容才是封装的体现。
7:下列哪个方法和int sum(int a,int b)是重写方法?() A:public void sum(int a,int b)B:public int sum(int a,int b)C:int sum(int a,int b,int c)D:void sum(int c,int b)8:下列程序的运行结果是:()class Test{private static int x = 10;public void show(int x){x++;System.out.println(x);}public static void main(String[] args){int x = 20; //局部变量覆盖成员变量Test t = new Test();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?() A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符? () A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?() class Animal{}class Dog extends Animal{}A:Animal a = new Animal();B:Dog d = new Dog();C: Animal a = new Dog();D:Dog d = new Animal();12:下列有关抽象类的叙述正确的是哪项?() A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?() A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()class Fu{public int num = 10;}class Zi extends Fu{public int num = 20;}class Testpublic static void main(String[] args) {Fu f = new Zi();System.out.println(f.num);Zi z = (Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();f.method();}}A:fu showB:zi showC:编译报错D:zi method16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
Java面向对象测试试题一、单选题1. 下面哪个关键字可以用来声明一个抽象类?A) abstractB) finalC) privateD) protected2. 在Java中,一个类可以同时继承多个类吗?A) 可以B) 不可以3. 在Java中,接口的成员变量默认是什么修饰符?A) privateB) protectedC) publicD) 默认不写修饰符4. 下面哪种访问权限修饰符可以让子类访问父类的成员变量?A) privateB) protectedC) publicD) 默认不写修饰符5. 下面哪个关键字可以用来声明一个常量?A) constantB) finalC) staticD) default二、填空题1. 在Java中,可以通过____关键字来引入其他包中的类。
2. 在Java中,____关键字可以用来防止重写一个方法。
3. 在Java中,____关键字表示当前对象的引用。
4. 在Java中,____关键字用于表示父类。
三、编程题请编写一个Java类,实现一个矩形的类,要求具有以下功能:1. 拥有长度和宽度两个属性。
2. 拥有计算矩形面积的方法。
3. 能够输出矩形的属性信息。
```javapublic class Rectangle {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}public double getArea() {return length * width;}public void printInfo() {System.out.println("Length: " + length);System.out.println("Width: " + width);}}```使用上述代码,可以创建一个矩形对象并调用相应方法来获取矩形的面积和属性信息。
Java面向对象和java基础语法测试题(满分100分,考试时间:90分钟)姓名_________ 得分_______一、单项选择题1) 在Java类中,使用以下(B )声明语句来定义公有的int型常量MAX。
A. public int MAX = 100;B. final int MAX = 100;C. public static int MAX = 100;D. public static final int MAX = 100;2) 在Java中,下列关于方法重载的说法中错误的是(D )。
A. 方法重载要求方法名称必须相同B. 重载方法的参数列表必须不一致C. 重载方法的返回类型必须一致D. 一个方法在所属的类中只能被重载一次3) 给定Java代码如下所示,在横线处新增下列(C )方法,是对cal方法的重载。
public class Test{public void cal(int x, int y, int z) {}}A. public int cal(int x, int y, float z){ return 0; }B. public int cal(int x, int y, int z){ return 0; }C. public void cal(int x, int z){ }D. public void cal(int z, int y, int x){ }4) 在Java中,下面对于构造函数的描述正确的是(D )。
A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5) 下列选项中关于Java中封装的说法错误的是(D )。
A. 封装就是将属性私有化,提供公有的方法访问私有属性B. 属性的访问方法包括setter方法和getter方法C. setter方法用于赋值、getter方法用于取值D. 类的属性必须进行封装,否则无法通过编译6) 在Java中,以下程序编译运行后的输出结果为(D )。
JAVA基础1、变量命名有哪些规定?2、指出下面程序中的编译错误,并更正int lenght = 10; System.out.println(length; int &size = 2; System.out.println(&size;int age ; System.out.println(age;3、指出下面程序运行输出结果int i = 100,j = 200;boolean b = (i>j&&(i++>100;System.out.println(b; System.out.println(i;4、指出下面运行输出结果int a =100;String msg = “a=”+a;System.out.ptintln(msg;msg = “”+100+200;System.out.ptintln(msg;msg = 100+200+””;System.out.ptintln(msg;5、请简述for语句的执行流程for(表达式1;表达式2;表达式3{语句块}6、输出2-100之内的所有质数7、冒泡排序8、随机生成长度为5的int类型的数组,并输出9、什么是类参考答案:类是一个概念(名词抽象的定义。
类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些可以被调用的功能,称之为“方法”。
类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义它的类来决定。
10、简述JVM内存结构堆,栈和方法区别,分别存储的内容参考答案:JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的对象。
栈用于存放程序运行过程当中所有的局部变量。
一个运行的Java程序从开始到结束会有多次方法的调用。
JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。
一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。
当某一个方法调用完成后,其对应的栈帧将被清除。
方法区该空间用于存放类的信息。
Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区。
类的各种信息都在方法区保存。
11、什么是方法的重载参考答案:在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload。
编译器在编译时会根据其参数的不同,绑定到不同的方法。
12、什么是构造方法参考答案:在Java语言中可以通过构造方法实现对对象成员变量的初始化。
构造方法是在类中定义的方法。
但不同于其他的方法,构造方法的定义有如下两点规则:1.构造方法的名称必须与类名同名。
2.构造方法没有返回值,但也不能写void。
13、重写和重载的区别参考答案:重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。
重写遵循所谓“运行期绑定”,即在运行的时候根据引用变量指向的实际对象类型调用方法。
14、下面哪种情况属于方法重载A )方法名相同,参数类型与个数不同B )方法参数类型相同C)方法参数个数相同D )方法返回类型相同E)方法名相同,方法参数类型与个数也相同15、如果一个子类要继承父类,需要使用哪个关键字A )thisB )super C)public D )extends16、class Card{}下列不属于Card类的构造方法的是:A.Card({}B.public Card({}C.public void Card({}D.private Card({}17、下列说法正确的是:class CalssA{public int numberOfinstances;protected ClassA(int numberOfinstances{this.numberOfinstances=numberOfinstances;}}Public class ExtendedA extends ClassA{private ExtendedA(int numberOfinstances{super(numberOfinstances;}public static void main(String []ages{ExtendedA ext = new ExtendedA(420;System.out.print(ext.numberOfinstances;}}A.运行后,输出420B.运行时抛出异常C.编译错误,所有的构造器必须是public的D.编译错误,构造器不能private的18、下列不属于java语言特征的是:A.平台无关B.面向对象C.支持指针类型D.垃圾回收机制19、下列代码的输出结果是:(public class A{P ublic void info({System.out.println(“A info”;}}public class B extends A{public void info({System.out.println(“B info”} Public static void main(String[]ages{B b = new B(; A a =b; (;}}A. B info A infoB. A info B infoC. A infoD. B info20、下列输出结果是:class Foo{ public static void test({System.out.println("Foo";}}class Moo extends Foo{public static void test({System.out.println("Moo";}} public static void main(String[] args {Foo ff = new Moo(;ff.test(; }21、以下描述不正确的是?()A. final class不能被继承B. final变量不能被修改C. final成员变量不可以在构造方法中赋值D. final方法不能被覆盖(overriden22、以下描述不正确的是?A. abstract class一定有abstract method(sB. abstract class可以没有abstract method(sC. 定义abstract class的目的是为了被继承D. interface中定义的方法全是abstract methodsE. interface中定义的变量全部是final static变量23、一个匿名内部类不可能是?A. 继承其他的类B. 实现了某一接口C. 定义了构造方法D. 可以使用成员变量24、下面关于java语言中方法的说法错误的是:A.方法调用时参数类型必须符合方法的定义B.参数传递是值传递的方式C.如果方法没有返回值必须声明返回为voidD.如果方法定义为返回void,则方法中不能出现return语句25、下面运行的结果是:public class Foo { public String doit(int x, int y { return "a"; }public String doit(int[] vals { return "b"; }public static void main(String[] args { Foo f=new Foo(; System.out.println(f.doit(4, 5; }}A.代码public String doit(int[] vals {行,编译出错B.代码System.out.println(f.doit(4, 5;行,抛出运行时异常C.输出:aD.输出:b26、关于下列代码说法正确的是:public class Foo {public int add(int a, int b {return a + b;}public static void main(String[] args {Foo foo = null;System.out.println(foo.add(10, 20;}}A.编译错误B.正常运行,但无结果输出C.运行输出:30D.运行时抛出NullPointerException异常27、下列说法正确的有:A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被实例化时执行D.一个class只能定义一个constructor28、关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类29、下列程序运行结果是?30、请看下列代码class ClassA {}class ClassB extends ClassA {}class ClassC extends ClassA {}public class Test{public static void main(String[] args {ClassA p0 = new ClassA(;ClassB p1 = new ClassB(;ClassC p2 = new ClassC(;ClassA p3 = new ClassB(;ClassA p4 = new ClassC(;<插入代码>}}下列选项中放置在<插入代码>处,使程序编译正确的是:A.p0 = p1;B.p1 =p2;C.p2 = p4;D.p2 = (ClassCp1;31、程序输出的结果是class One { public One( { System.out.print(1; }}class Two extends One { public Two( { System.out.print(2; }}class Three extends Two { public Three( { System.out.print(3; }}public class Numbers { public static void main(String[] argv { new Three(; }}A.1B.3C.123D.32132、下面代码运行结果是:public class Animal { public String noise( { return "peep"; }public static void main(String[] args { Animal animal = new Dog(; Cat cat = (Catanimal; System.out.println(cat.noise(; }}class Dog extends Animal { public String noise( { return "bark"; }}class Cat extends Animal { public String noise( { return "meow"; }}A.peepB.barkC.meowD.抛出运行时异常33、下面代码运行结果是:class SimpleCalc { public int value; public void calculate( { value += 7; }}public class MultiCalc extends SimpleCalc { public void calculate( { value -= 3; }public void calculate(int multiplier { calculate(; super.calculate(; value *= multiplier; } public static void main(String[] args {MultiCalc calculator = new MultiCalc(;calculator.calculate(2;System.out.println("Value is: " + calculator.value;}}A.Value is: 8B.Value is: -8C.Value is: 12D.Value is: -1234、下列数组创建和初始化的方式不正确的是:A. public class Test02 {static final int[] a = { 100,200 };}B. public class Test02 {static final int[] a;static {a=new int[2];a[0]=100;a[1]=200; }}C.public class Test02 {final int[] a;public Test02({a=new int[2];a[0]=100; a[1]=200; }}D.public class Test02 {static final int[] a;static void init( {a = new int[3];a[0]=100;a[1]=200; }}35、请看下列代码:public abstract class A { abstract void a1(; void a2( { }} class B extends A { void a1( { } void a2( { }}class C extends B { void c1( { }}和A x = new B(; C y = new C(; A z = new C(;下列选项中属于多态形式调用方法的是:A.x.a2(;B.z.a2(;C.z.c1(;D.y.c1(;36、程序执行的结果是:public class Test{int x = 12;public void method(int x {x += x;System.out.println(x;}public static void main(String[] args {Test t = new Test(;t.method(5;}}A.5B.10C.12D.1737、程序执行的结果是:class Foo { public int a; public Foo( { a = 3; } public void addFive( { a += 5; }}class Bar extends Foo {public int a;public Bar( {a = 8; }public void addFive( { this.a += 5; }} public class TestFoo {public static void main(String[] args {Foo foo = new Bar(;foo.addFive(;System.out.println("Value: " + foo.a; }}A.Value: 3B.Value: 8C.Value: 13D.Value: 1838、程序运行结果public class Test {public static void main(String [] args{Child c = new Child(;}}class Father{public Father({System.out.println("父类无参构造函数"; }public Father(String name{System.out.println("父类有参构造函数"; }}class Child extends Father{public Child({this("dd";System.out.println("子类无参构造函数";}public Child(String name{super("dd";System.out.println("子类有参构造函数";}}A.父类有参构造函数子类有参构造函数子类无参构造函数B.父类无参构造函数子类有参构造函数子类无参构造函数C.子类有参构造函数子类无参构造函数父类无参构造函数D.子类无参构造函数子类有参构造函数父类无参构造函数39、下列代码的运行结果是:public class Animal {public String noise( { return "peep"; }public static void main(String[] args {Cat cat =null;Animal animal = new Dog(;if (animal instanceof Cat {cat = (Cat animal;System.out.println(cat.noise(;}else{System.out.println("animal is not Cat's instance"; }}}class Dog extends Animal { public String noise( {return "bark";}}class Cat extends Animal {public String noise( {return "meow";}}A.peepB.barkC.meowD.animal is not Cat's instance。