java 继承多态接口选择题
java选择题判断题题库

选择题第一章java语言概述1在下列概念中, Java语言只保留了 B .A.运算符重载B.方法重载C.指针`D.结构和联合2下列关于Java语言特性的描述中,错误的是___D_.A.支持多线程操作B. JA V A程序与平台无关C. JA V A程序可以直接访问Internet上的对象D. 支持单继承和多继承3下列关于JavaApplication程序在结构上特点的描述中,错误的是 CA. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类.4Java 程序经过编译后生成的文件的后缀是 CA. .objB. .exeC. .classD. .java5下列关于运行字节码文件的命令行参数的描述中,正确的是 AA.第一个命令行参数被存放在args[0]中B.第一个命令行参数被存放在args[1]中C.命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关。
6下列关于java语言面向对象特性描述中,错误的是___C___A.具有封装性B. 支持多态性,允许方法重载C. 支持单继承和多继承D. 支持多接口7下列关于java语言与C++语言异同点的描述中,错误的是______DA. java语言取消了goto语句|B. java语言中取消了指针C. java 语言不支持运算符重载D. java 语言仍保留了结构和联合8列关于JavaApplication程序特点的描述中,错误的是 AA. 该程序只能是一个名字与主类名相同的文件组成B. 该程序中仅有一个主方法,并被包含在某个类中C. 该程序中没有不属于某个类的方法D. 该程序实际上是一个类串9使用Java语言编写的源程序保存时的文件扩展名是( B )。
A.classB.javaC.cppD.txt10Java源文件和编译后的文件扩展名分别为( B )(A) .class和.java (B).java和.class(C).class和 .class (D) .java和.java11Java语言使用的字符码集是( D )(A) ASCII (B) BCD(C) DCB (D) Unicode12下面关于main方法说明正确的是( B )(A) public main(String args[ ])(B) public static void main(String args[ ])(C) private static void main(String args[ ])(D) void main()13Java application中的主类需包含main方法以下哪项是main方法的正确形参( B )A、String argsB、String args[]C、Char argD、StringBuffer args[]14下列关于Java语言和C++语言之间差别的描述中,不正确的一项是( A )A. Java虽然提供了安全机制,但是还是没有C++安全B. Java的内存管理优于C++的内存管理C. Java没有全局变量,但是C++有全局变量D. Java没有指针,但是C++的指针最灵活15关于Java语言的内存回收机制,下列选项中最正确的一项是(C )A. Java程序要求用户必须手工创建一个线程来释放内存B. Java程序允许用户使用指针来释放内存C. 内存回收线程负责释放无用内存D. 内存回收线程不能释放内存对象16下列关于Java语言和C++语言之间差别的描述中,不正确的一项是(A )A. Java虽然提供了安全机制,但是还是没有C++安全B. Java的内存管理优于C++的内存管理C. Java没有全局变量,但是C++有全局变量D. Java没有指针,但是C++的指针最灵活17Java语言是一种(D)A. 面向机器的编程语言B. 面向过程的编译型编程语言C. 面向问题的解释型编程语言D. 面向对象的解释型编程语言18下面的说法正确的是( C )。
Java面向对象期末模拟试卷A

Java面向对象期末模拟试卷A分值100一、选择题(每小题2分,共40分)1.以下关于类的结构的说法正确的是()A.类只能包含一个构造方法B.类可以没有属性C.类只能包含方法D.类只能包含属性2.面向对象的特点是()A.继承、封装、多态 B.继承、接口、对象C.方法、继承、类 D.接口、继承、类3. 在java中,以定义了两个接口B和C,要定义一个实现这两个接口的类,以下语句的正确的是( )A.interface A extends B,CB.interface A implements B,CC.class A implements B,CD.class A implements B,implements C4.在Java中,关键字()使类不能派生出子类。
A.finalB.privateC.publicD.static5.在Java中,下面关于抽象类的描述正确的是( )。
A.抽象类可以被实例化B.抽象类里面一定有抽象方法C.抽象类中的方法必须都是抽象的D.声明抽象类必须带有关键字abstract6. 给定java代码,如下,编译运行后,结果是 ( )。
public class Test{static String s;public static void main(String args[ ]){char c=s.charAt(0);System.out.println(c);}}A. 编译错误B. 运行期异常,异常类型为 NullpointerExceptionC. 运行期异常,异常类型为 ArithmeticExceptioinD. 运行正常,但无输出内容7.下面程序运行结果为:()public class Test{public static void main(String[] args){new Test().test();}public void test(){try{System.out.print("try");}catch(Exception ex){System.out.print("catch");}finally{System.out.print("finally");}}}A. tryB. try catchC. try finallyD. try catch finally8. 关于继承的说法正确的是()A.子类将继承父类所有的属性和方法。
java练习题答案

java练习题答案第1章java语言概述习题一、填空题1、面向对象程序的主要特征:继承,__封装___,___多态_____。
2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以__重用或复用___.3、java语言中,为将源代码翻译成__字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
4、javac是java语言中的编译器,基本语法是:javac[选项]__文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.5、java语言的主要贡献者是谁Jamegoling二、单选题1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A、javaB、.claC、htmlD、.e某e2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。
A、publictaticvoidmain()B、publictaticvoidmain(Stringarg[])C、publictaticintmain(String[]arg)D、publicvoidmain(Stringarg[])三、判断1、Java语言具有较好的安全性和可移植性及与平台无关等特性。
√2、Java语言的源程序不是编译型的,而是编译解释型的。
√四、问答题1、编写、运行java程序需要经过哪些主要步骤?答:1.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。
2、阅读下列java源代码文件,并回答问题publicclaSpeak{voidpeakHello(){Sytem.out.println(\);}}cla某iti8{publictaticvoidmain(Stringarg[]){Speakp=newSpeak();p.peakHello();}}(1)上述源文件的名字是什么?Speak.java(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.cla某iti8.cla第2章(1)基本数据类型练习题一、填空题1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_float__和__double__两种具体类型。
java面向对象考试题及答案

java面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
JAVA基础试题(A卷)附带答案

JAVA基础试题(A卷)附带答案第⼀部分:选择题(共60分,单选共40题,每空1分,多选共10题,每空2分)单项选择题(40*1’=40)1.下列属于合法的 Java 标识符是 ( )A) _cat B) 5books C) +static D) -3.141591.int 类型整型变量在内存中的位数为 ( )A) 8 B) 16 C) 32 D) 641.下⾯()赋值语句不会出现编译警告或错误 ( )A) float f=1.3; B) char c=a; C) byte b=257; D) int i=10;1.在 Java 中,由 Java 编译器⾃动导⼊⽽⽆需在程序中⽤import 导⼊的包是 ( )A) java.applet B) java.awt C) java.util D) /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng1.下列哪个类声明是正确的?( )A) abstract final class HI{ ···}B) abstract private move(){ ··· }C) protected private number;D) public abstract class Car{ ···}1.编译 Java Application 源程序⽂件将产⽣相应的字节码⽂件,这些字节码⽂件的扩展名为 ( )A) java B) class C) html D) exe1.为 AB类的⼀个⽆形式参数⽆返回值的⽅法 method 书写⽅法头,使得使⽤类名 AB作为前缀就可以调⽤它,该⽅法头的形式为 ( )A) static void method( )B) public void method( )C) final void method( )D) abstract void method( )1.在 Java 中,所有类的根类是 ( )A) java.awt.FrameB) java.applet.AppletC) /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.ClassD) /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.Object1.在 Java 中,⽤ Package 语句说明⼀个包时,该包的层次结构必须是 ( )A) 与⽂件⽬录的层次相同B) 与⽂件的结构相同C) 与⽂件⼤⼩相同D) 与⽂件类型相同1.下列访问权限的⼤⼩关系,正确的是 ( )A. public > protected > private > packageB. public > package > protected > privateC. public > protected > package > privateD. protected > public > package > private1.在 Java 中,能实现多重继承效果的⽅式是 ( )B. 适配器C. 接⼝D. 同步1.⼗进制数 16 的 16 进制表⽰格式是 ( )A.0x10 B.0x16 C .0xA D.161.下列⽅法中可以⽤来创建⼀个新线程的是 ( )A.实现 /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.Runnable接⼝并重写 start() ⽅法.B.实现 /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.Runnable接⼝并重写 run() ⽅法C.实现 /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.Thread类并重写 run() ⽅法D.实现 /doc/0139d46677c66137ee06eff9aef8941ea66e4b62.html ng.Thread类并重写 start() ⽅法1.下列代码中,将引起⼀个编译错误的⾏是 ( )1.public class Test{2.int m,n;3.public Test() {}4.public Test(int a) {m=a;}5.public static void main(String args[]){6.Test t1,t2;7.int j,k;8.j=0;k=0;9.t1=new Test();10.t2=new Test(j,k);11.}12.}A.第 3 ⾏B.第 5 ⾏C.第 6 ⾏D.第 10 ⾏1.在 Java 中,负责对字节代码解释执⾏的是()A.垃圾回收器 B .虚拟机 C.编译器 D.多线程机制1.下列数组定义及赋值,错误的是 ( )1.int intArray[];2.intArray=new int[3]; intArray[1]=1; intArray[2]=2; intArray[3]=3;3.int a[]={1,2,3,4,5};4.int[][] a=new int[2][]; a[0]=new int[3]; a[1]=new int[3];1.关键字 supper 的作⽤是( )A. ⽤来访问⽗类被隐藏的成员变量B. ⽤来调⽤⽗类中被重载的⽅法C. ⽤来调⽤⽗类的构造函数D. 以上都是1.凡是从中央处理器流向外部设备的数据流称为()A. ⽂件流B. 字符流C. 输⼊流1.下列属于⽂件输⼊输出类的是()A. FileInputStream 和 FileOutputStreamB. BufferInputStream 和 BufferOutputStreamC. PipedInputStream 和 PipedOutputStreamD. 以上都是1.JDBC 中要显式地关闭连接的命令是()A .Connection.close(); B.RecordSet.close() C.Connection.stop() D.Connection.release()1.下⾯关于继承的说法,正确的是()A、超类的对象就是⼦类的对象 B 、⼀个类可以有⼏个超类C、⼀个类只能有⼀个⼦类D、⼀个类只能有⼀个超类1.下⾯()⽅法可以⽤来加载 JDBC驱动程序。
JAVA继承,接口,抽象类等练习

一、选择题1、为了区分重载多态中同名的不同方法,要求(A )。
A) 采用不同的参数列表B) 返回值类型不同C) 调用时用类名或对象名做前缀D) 参数名不同2、定义主类的类头时可以使用的访问控制符是( C)。
A) private B) protected C) public D) private protected3、下列整型的常量属性i 的定义中,正确的是( A)。
A) static final int i=100; B) final int i;C) static int i; D) final float i=1.2f;4、设x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( C)。
A) public x x1= new y( ); B) x x1=x( );C) x x1=new x( ); D) int x x1;5、下列方法定义中,正确的是( D)。
A) int x( int a,b ) B) double x( int a,int b){ return (a-b); } { int w; w=a-b; }C) double x( a,b ) D) int x( int a,int b){ return b; } { return a-b; }6、为了使包sos在当前程序中可见,可以使用的语句是( A)。
A)import sos.*; B)package sos.*;C)sos import; D)sos package;7、设i、j、k 为类x 中定义的int 型变量名,下列类x 的构造函数中正确的是( )。
A) x( int m){ ... } B) void x( int m){ ... }C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... }8、下列类头定义中,正确的是( )。
CA) class x B) public x extends y{ .... } { .... }C) public class x extends y D) class x extends y implements y1{ .... } { .... }9、下面是有关子类继承父类构造函数的描述,其中正确的是(C )。
Java选择题3
22、关于 Java 的异常和异常处理,下面说法错误的是(CD)。
A. try/catch/finally 块里都可以嵌套 try/catch/finally
B. 一个 try 可以对应多个 catch
C. 如果发生的异常没有被捕捉,异常将被系统忽略
D. 异常处理时可以只用 try 块。
23、关于 Java 的继承,下面说法错误的是(CD)。
12、下面的异常处理代码的输出结果是(A)。
try{
int result = 6/0;
System.out.print("try,");
} catch(ArithmeticException e1) {
System.out.print("ArithmeticException 异常,");
throw new Exception();
Integer a = new Integer(10);
Integer b = new Integer(10);
public static void main (String[ ] args){
Testa testA = new Testa();
if (testA.a==testA.b){
System.out.print("很");
B.if( (s!=null) && (s.length()>0) )
C.if( (s==null) | (s.length()==0) )
D.if( (s==null) || (s.length()==0) )
20、阅读下面的代码,B 类注释处可以放置的方法是(BCD)。
class A {
java笔试——选择题
Java基础笔试题一.选择题(共50题,每题2分,共100分。
多选题选不全或选错都不得分。
) 1.以下属于面向对象的特征的是(C,D)。
(两项)A) 重载B) 重写C) 封装D) 继承2.以下代码运行输出是(C)public class Person{ private String name=”Person”;int age=0; } public class Child extends Person{ public String grade; public static void main(String[] args){ Person p = new Child(); System.out.println(); } } A) 输出:Person B) 没有输出C) 编译出错D) 运行出错解答:子类不能访问父类私有成员3.在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static语句块4.以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6.以下程序的运行结果是(D)class Person{ public Person(){ System.out.println(“this is a Person”);} } public class Teacher extends Person{ private String name=”tom”;public Teacher(){ System.out.println(“this is a teacher”); super(); } public static void main(String[] args){ Teacher teacher = new Teacher(); System.out.println(); } } A) this is a Person this is a teacher tom B) this is a teacher this is a Person tom C) 运行出错 D) 编译有两处错误7. 以下说法错误的是(D )A) super.方法()可以调用父类的所有非私有方法方法()可以调用父类的所有非私有方法 B) super()可以调用父类的所有非私有构造函数 C) super.属性可以调用父类的所有非私有属性属性可以调用父类的所有非私有属性 D) this 和super 关键字可以出现在同一个构造函数中8. 以下关于final 关键字说法错误的是(A,C )(两项)A) final 是java 中的修饰符,可以修饰类、接口、抽象类、方法和属性 B) final 修饰的类肯定不能被继承 C) final 修饰的方法不能被重载 D) final 修饰的变量不允许被再次赋值9. 访问修饰符作用范围由大到小是(D )A) private-default-protected-public B) public-default-protected-private C) private-protected-default-public D) public-protected-default-private 10. 以下(D )不是Object 类的方法A) clone () B) finalize () C) toString () D) hasNext ()11. 多态的表现形式有(A )A) 重写 B) 抽象 C) 继承 D) 封装12. 以下对重载描述错误的是(B ) A) 方法重载只能发生在一个类的内部 B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13.以下(D)添加到ComputerBook中不会出错class Book{ protected int getPrice(){ return 30; } } public class ComputerBook extends Book{ } A) protected float getPrice(){} B) protected int getPrice(int page){} C) int getPrice(){} D) public int getPrice(){return 10;} 14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16.以下代码,描述正确的有(A)interface IDemo{ public static final String name;1 void print();2 public void getInfo();3 } abstract class Person implements IDemo{4 public void print(){ } } A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17.接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18.以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19.以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20.以下程序运行结果是(A)public class Test extends Father{ private String name=”test”;public static void main(String[] args){ Test test = new Test(); System.out.println(test.getName()); } } class Father{ private String name=”father”;public String getName() { return name; } } A) father B) test C) 编译出错D) 运行出错,无输出21.以下对异常的描述不正确的有(C)A) 异常分为Error和Exception B) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException 之外的异常22.在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catch B) try C) throws D) throw 23.下面代码运行结果是(B)public class Demo{ public int add(int a,int b){ try{ return a+b; }catch(Exception e){ System.out.println(“catch 语句块”);}finally{ System.out.println(“finally 语句块”);} return 0; } public static void main(String[] args){ Demo demo = new Demo(); System.out.println(“和是:”+demo.add(9,34));} } A) 编译异常B) finally语句块和是:43 C) 和是:43 finally语句块D) catch语句块和是:43 24.以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A) 自定义异常必须继承Exception B) 自定义异常可以继承自Error C) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)public class Test { public int div(int a, int b) { try { return a / b; }catch(Exception e){ System.out.println(“Exception”);}catch(NullPointerException e){ System.out.println(“ArithmeticException”);} catch (ArithmeticException e) { System.out.println(“ArithmeticException”);} finally { System.out.println(“finally”);} return 0; } public static void main(String[] args) { Test demo = new Test(); System.out.println(“商是:” + demo.div(9, 0));} } 商是:0 B) ArithmeticException finally 商是:0 A) Exception finally 商是:C) finally商是:0 D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDP D) UDP数据传输效率高于TCP 28. 在Java中,下面对于构造函数的描述正确的是(D)。
实用教程习题集第4章
第4章类的封装性、继承性、多态性及接口一、判断题1. 如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。
()2. 接口中的成员变量全部为常量,方法为抽象方法。
()3. 抽象类可以有构造方法,所以能直接用来生成实例。
()4. Java的类不允许嵌套定义。
()5. 包含抽象方法的类一定是抽象类,但有abstract修饰的类不一定包含抽象方法()6. 泛型只能用于类的定义中,不能用于接口的定义中。
()7. 用final修饰的类不能被继承。
()8. 接口无构造器,不能有实例,也不能定义常量。
()9. 一个具体类实现接口时,必须要实现接口中的所有方法。
()10. 类具有封装性,但可以通过类的公共接口访问类中的数据。
()11. 子类能继承或覆盖(重写)父类的方法,但不能重载父类的方法。
()12. 用final修饰的方法不能被子类覆盖(重写)。
()13. abstract是抽象修饰符,可以用来修饰类、属性和方法。
()14. 父类的静态方法不能被子类覆盖为非静态的方法,反之亦然。
()15. 子类实例化时,子类的构造方法一定会先调用父类的构造方法。
()16. 用final修饰的方法不能被覆盖(重写),也不能有重载的方法。
()17. 接口也可以继承接口,且可以继承多个接口,体现了多重继承性。
()18. 假设类B继承类A,类C继承类B,则在类C中可用super访问类A的方法。
()19. 类和接口都可以继承另外一个类。
()20. 抽象类中不能包含final修饰的方法。
()二、选择题1. Java实现动态多态性是通过()实现的。
A. 重载B. 覆盖C. 接口D. 抽象类2. 下列哪一种描述是正确的?()A. 动态多态性只针对静态成员方法B. 动态多态性只针对非静态成员方法C. 动态多态性只针对静态成员域D. 动态多态性只针对非静态成员域3. 下列关于重载方法哪一个是正确的描述?()A. 重载方法的参数形式(类型、参数个数或参数顺序)必须不同B. 重载方法的参数名称必须不同C. 重载方法的返回值类型必须不同D. 重载方法的修饰词必须不同4. 接口的所有成员方法都具有()修饰的特性。
JavaOOP试题
JavaOOP 综合测试题(笔试)1) 以下属于OOP的特征有()。
a)继承b)封装c)多态d)隐藏2) JavaOOP中的多态包括()a) 方法重写b)方法重载c) 方法隐藏d)以上都不对3) Java中的访问修饰符包括()。
a)Public b)privatec)protected d)internal4) Java中用于实现继承的关键字是。
a)Extends b)implementsc):d)base5) 以下有关Java继承的说法,正确的有a)Java中的继承是单一继承b)Java中的继承不是单一继承c) 子类可以自动继承父类的全部方法和属性 d) 构造方法和私有方法,私有属性不会被子类继承6) Java中,在子类访问父类的关键字是。
a)superb)basec)thisd)this.parent7) 在java中,如果有父类的引用指向子类的对象的情,以下说法正确的有a)如果用父类的引用调用子类的方法必须是重写的方法b)如果用父类的引用调用子类的方法必须是重载的方法c)如果用父类的引用调用子类的方法,不用重写也不用重载d).在父类中写成虚方法,子类使用new关键字就隐藏8) 以下关于Java重载的说法错误的有a)重载一般发生在一个类中b)重载的方法名称相同c)重载的方法的参数类型和个数相同d)重载的方法的返回类型相同9) 在Java 中,定义抽象类和抽象方法的关键字是。
a)abstractb)finalc)virtuald)interface10) Java中关于抽象类,以下说法不正确的的有( )。
a)抽象类中可以没有抽象方法b)抽象类中可以实例方法c)有抽象方法的类一定是抽象类d)抽象方法中一定有抽象类11) 在java中有关抽象类和继承的说法正确的有( )a)抽角类不能够创建实例b)如果子类继承了抽象类,必须实现父类中的全部抽象方法,否则子类也应声明成抽象类c)可以用抽角类的引用指向实现了该抽象类的对象d)一个类可以同时继承多个抽象类12) 在java中有关接口的说法错误的有a)定义接口使用interface关键字b)接口的方法必须全部是抽象方法c)接口中可以包含非抽象方法d)接口中的属性必须是常量13) 在java中有关接口的说法错误的有a)一个类可以同时实现多个接口b)一个类只能实现一个接口c)一个类可以先继承一个类并同时实现一个接口d)一个类可以先实现一个接口再继承一个类14) 在try-catch-finally中,以下可以与finally一起使用的是()a)try b)catchc)throw d)throws15) 下面代码运行结果是public class Demo {public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println("catch语句块");}finally{ System.out.println("finally语句块");}return 0;}public static void main(String[] args) {Demo demo=new Demo();System.out.println("和是:\t"+demo.add(9,34));}}a)编译异常b)finally语句块和是43c)和是43d)finally语句块16) 以下对自定义的异常描述正确的是:( )a)自定义的异常必须继承Exceptionb)自定义的异常可以更加明确的定位异常出错的位置,同时给出详细的异常信息c)自定义的异常类的父类可以继承Errord)java中不能自定义异常类17) 以下对log4j日志信息级别由高到低排列,确的是a)Error,warn,info,debug b)Info,debug,error,warnc)Warn,info,debug,error d)Debug,erro,warn,info18) 以下在Java中每个基本数据类型与对应的封装类,对应不正确的有a)int Integerb)float Floatc)double Doubled)char Char19) 在Java中,有关装箱和拆箱说法正确的是a)java中的八种基本数据类型有String,int,float,double,char,long,floatb)装箱是由基本数据类型转换为包装类c)拆箱是由包装类转换为基本数据类型d)以上说法都不正确20) 以下对反射描述错误的是()a)反射是程序在运行时能够获取自身信息的机制b)通过反射可以获取类的结构,首先要取得类的Class对象c)通过反射可以调取一个类中的方法d)通过反射只能获取当前类的结构信息,不可以获取当前类父类的结构信息21)以下关于端口号和IP地址描述正确的是()a)IP地址是用来区分不同计算机的标识b) 端口号是用来区分不同计算机的标识c)端口号是用来区分计算机中不同程序的标识c)IP是用来区分不同计算机的标识22)23)24)25) 26)在Java集合框架中,下列属哪一个是属于集合框架的根接口a)Collection b)Collectionsc)Map d)Set以下集合类以键值对形式存储的是a.ArrayListb.HashSetc.Vectord.HashMap以下对HashMap和HashTable描述正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、前言
Java 是一种面向对象的编程语言,它支持继承、多态和接口等特性。
在使用Java进行编程时,对于继承、多态和接口的理解至关重要。
本文将围绕这三个主题,提出一些选择题,以帮助读者加深对Java面向对象编程的理解。
二、继承
1. 继承是Java面向对象编程的重要特性之一。
在Java中,继承通过extends关键字来实现。
以下哪些说法是正确的?
a) 子类继承了父类的所有成员变量和方法
b) 子类可以继承多个父类
c) Java不支持多重继承
d) 父类可以继承子类
e) 子类可以访问父类的private成员变量和方法
2. 在使用继承时,有一些注意事项需要考虑。
以下哪些说法是正确的?
a) 子类可以重写父类的private方法
b) 子类的构造函数默认调用父类的无参构造函数
c) 父类的private成员变量和方法不会被继承
d) 子类可以访问父类的protected成员变量和方法
e) 继承可以增强代码的重用性和扩展性
三、多态
1. 多态是Java面向对象编程的另一个重要特性。
在Java中,多态通过继承和重写来实现。
以下哪些说法是正确的?
a) 多态可以提高代码的灵活性和可维护性
b) 子类实现了父类的多态特性
c) 多态可以使代码更易于扩展和修改
d) 多态可以实现接口的统一访问
2. 在使用多态时,有一些需要注意的地方。
以下哪些说法是正确的?
a) 父类引用可以指向子类对象
b) 子类引用可以指向父类对象
c) 多态不适用于静态方法
d) 引用类型决定了可以调用的方法
e) 多态可以提高代码的可读性和可维护性
四、接口
1. 接口是Java面向对象编程的另一个重要特性,它定义了一组抽象方法。
以下哪些说法是正确的?
a) 接口中的方法可以有方法体
b) 类可以实现多个接口
c) 接口可以继承多个接口
d) 接口中的方法默认是public和abstract
e) 接口可以包含成员变量
2. 在使用接口时,有一些需要注意的地方。
以下哪些说法是正确的?
a) 实现接口的类必须实现接口中的所有抽象方法
b) 接口可以继承类
c) 接口可以继承接口
d) 实现多个接口时,如果有重名方法则需要在实现类中进行重写
e) 接口可以包含静态方法和默认方法
五、结语
通过以上选择题,希望读者能够加深对Java面向对象编程中继承、多态和接口的理解。
在实际编程中,灵活运用这些特性,可以编写出更加具有扩展性和可维护性的代码。
对于Java编程的学习者来说,掌握好这些知识点,也会在日后的学习和工作中受益匪浅。
六、继承多态接口的综合运用
在实际的Java开发中,继承、多态和接口往往是同时运用的。
这三种特性的综合使用,可以使代码更加灵活、可扩展和可维护。
下面我们将通过举例来说明如何综合运用继承、多态和接口。
1. 首先我们创建一个形状(Shape)的接口,其中定义一个计算面积的抽象方法:
```java
public interface Shape {
double calculateArea();
}
2. 然后我们创建一个圆形(Circle)类,实现形状接口,并重写计算面积的方法:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
```
3. 接着我们创建一个矩形(Rectangle)类,也实现形状接口,并重写计算面积的方法:
```java
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
Override
public double calculateArea() {
return width * height;
}
}
```
4. 最后我们创建一个图形(Graphic)类,用于展示不同形状的面积。
在该类中,我们可以使用多态的特性,通过形状接口来引用不同的形状对象:
```java
public class Graphic {
public void displayArea(Shape shape) {
System.out.println("The area of the shape is: " + shape.calculateArea());
}
}
```
通过上述例子,我们可以看到继承、多态和接口的综合运用。
通过继承,圆形类和矩形类分别实现了形状接口,并重写了计算面积的方法;通过多态,在图形类中我们使用形状接口来引用不同的形状对象,实
现了对不同形状计算面积的统一访问;通过接口,我们定义了形状接口,并在具体的形状类中实现了接口中的抽象方法。
这样的设计使得
代码结构更加清晰,扩展新的形状类也变得简单。
综合运用继承、多态和接口可以使得我们的代码更加灵活和可维护。
无论是在设计模式中,还是在日常的代码开发中,都能够发挥出强大
的作用。
对于Java开发人员来说,深入理解并巧妙运用继承、多态和接口,将会使其编写的代码更具有表现力和可扩展性。
七、总结
在本文中,我们对Java中的继承、多态和接口进行了一定的探讨,并通过选择题和具体的综合运用例子来帮助读者加深对这些概念的理解。
继承、多态和接口是Java面向对象编程中非常重要的特性,它们可以让代码更加灵活、可扩展和可维护。
对于Java编程学习者来说,深入理解这些特性,善于灵活运用,对于提高自身的编程水平和解决实际
问题都有着积极的意义。
希望本文对读者有所帮助,也希望读者在日后的学习和工作中能够善
用继承、多态和接口这些特性,写出高质量的Java代码。
感谢大家的阅读!。