抽象类和接口补充题

合集下载

C#习题(内有答案)

C#习题(内有答案)

答案:A 13.在WinForm应用程序中,可以通过以下()方法使一个窗体成为MDI窗体。 A、改变窗体的标题信息 B、在工程的选项中设置启动窗体 C、设置窗体的IsMdiContainer属性 D、设置窗体的ImeMode属性 答案:C 14.字符串连接运算符包括&和()。 A. + B、 C. * D、 / 答案 A 15.在WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示()。 A、该复选框被选中 B、该复选框不被选中 C、不显示该复选框的文本信息 D、显示该复选框的文本信息 答案:A 16. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的()。 A. int[]arr = new int[10,20] B、 int[]arr = int new[10,20] C. int[,]arr = new int[10,20] D、 int[,]arr = new int[20;10] 答案:C 17. 以下正确的描述是()。 A. 函数的定义可以嵌套,函数的调用不可以嵌套 B、 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D、 函数的定义和函数的调用均不可以嵌套 答案:B 18.WinForms中的图片框控件(pictureBox)中能显示以下的图片格式,除了()。 A、.doc B、.bmp C、.gif D、.jpeg 答案:A 19.()方法执行指定为Command对象的命令文本的SQL语句,并返回受SQL语句 影响或检索的行 数。 A、 ExecuteNonQuery B、 ExecuteReader C、 ExecuteQuery D、 ExecuteScalar 答案:A 20.引用类型主要有4种:类类型、数组类型、接口类型和()。 A、对象类型 B、字符串类型 C、委托类型 D、整数类型 答 案:C 21.加载窗体时触发的事件是()。 A、 Click B、Load C、GotFoucs D、DoubleClick 答案:B 22.在.NET中,为了卸载一个名为”myWindowsService.exe”的Windows服务,使用的命令是() A、Unstall myWindowsService.exe B、Installutil /u myWindowsService.exe C、Installutil myWindowsSercicr.exe D、Unstallutil /u myWindowsService.exe 答案:B 23.下列()是的两个主要组件 A、 Command和DataAdapter B、 DataSet和Data Table C、 NET数据提供程序和DataSet D、 NET数据提供和DataAdapter 答案:C 24.改变窗体的标题,需修改的窗体属性是()。 A、Text B、Name C、Title D、Index

java笔试题大集合及答案

java笔试题大集合及答案

java笔试题大集合及答案# Java笔试题大集合及答案1. Java中接口和抽象类的区别是什么?- 接口和抽象类都是抽象的,不能直接实例化。

- 接口中所有的方法默认是public的,而抽象类可以包含非public的成员。

- 一个类可以实现多个接口,但只能继承一个抽象类。

- 接口中不能包含构造方法,而抽象类可以。

- 接口中的字段默认是public static final的,而抽象类中的字段可以是任意类型。

2. Java中如何实现单例模式?- 单例模式确保一个类只有一个实例,并提供一个全局访问点。

- 可以通过私有化构造方法,提供一个私有静态变量来保存实例,并提供一个公有静态方法来获取实例。

3. Java中集合框架的层次结构是怎样的?- 集合框架分为两大类:单元素集合和复合元素集合。

- 单元素集合包括List、Set和Queue。

- 复合元素集合包括Map。

- 每个接口都有多个实现类,如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等。

4. Java中如何实现多线程?- 可以通过继承Thread类并重写run方法来实现。

- 也可以通过实现Runnable接口并重写run方法,然后创建Thread对象来实现。

- Java 5引入了Executor框架,可以更方便地管理线程。

5. Java中异常处理的机制是什么?- Java使用try-catch-finally块来处理异常。

- try块中编写可能抛出异常的代码。

- catch块中编写处理异常的代码。

- finally块中的代码无论是否发生异常都会执行。

6. Java中StringBuffer和StringBuilder的区别是什么?- StringBuffer是线程安全的,而StringBuilder不是。

- StringBuffer的方法是同步的,StringBuilder的方法不是。

- 在单线程环境下,StringBuilder的性能优于StringBuffer。

实验13 抽象类和接口

实验13 抽象类和接口

实验13 接口一、实验目的(1)熟悉接口的定义方法。

(2)了解Java语言实现多继承的途径。

二、实验内容第一题:学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的被管理和对于教师的责任管理在他们身上都有体现。

(1)设计两个信息管理接口StudentManageInterface和TeacherManageInterface。

其中,StudentInterface接口包括setFee( )方法和getFee( )方法,分别用于设置和获取学生的学费:TeacherInterface接口包括setPay( ) 方法和getPay( ) 方法,分别用于设置和获取老师的工资。

(2)定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。

(3)创建一个姓名为“zhangsan"的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。

要求:(1)在Graduate中实现各个接口定义的抽象方法。

(2)对年学费和年收入进行统计,用收入减去学费,如果小于2000元则显示“providea loan”信息。

第二题:定义一个抽象类Bank,它包含有oneyearRate(定期利率)、oneyearNationaldebt(国债利率)和interestRate(活期利率)常数和count()方法及show()方法。

Count()方法用语对本息合计(存款本金+利息)进行计算,而show()方法用于对本息合计进行显示。

由于对不同的存款方式,利率是不同的,因此此程序分别定义多个子类实现对抽象类的继承,实现对利率的计算和显示。

注意:本程序定义了定期利率、活期利率、国债利率三种利率,按照一万元钱位存款单位进行统计,计算每种利率下存款一年后的本息合计。

抽象类与接口练习

抽象类与接口练习

抽象类与接⼝练习【练习题】1.抽象类与继承设计⼀个能细分为矩形、三⾓形、圆形和椭圆形的“图形”类。

使⽤继承将这些图形分类,找出能作为基类部分的共同特征(如校准点)和⽅法(如画法、初始化),并看看这些图形是否能进⼀步划分为⼦类。

本题只考虑实现思想,不考虑具体实现的细节,实现⽅式可⾃由发挥。

【练习题】2.抽象类:创建⼀个Vehicle类并将它声明为抽象类。

在Vehicle类中声明⼀个NoOfWheels⽅法,使它返回⼀个字符串值。

创建两个类Car和Motorbike 从Vehicle类继承,并在这两个类中实现NoOfWheels⽅法。

在Car类中,应当显⽰“四轮车”信息;⽽在Motorbike类中,应当显⽰“双轮车”信息。

创建另⼀个带main⽅法的类,在该类中创建Car和Motorbike的实例,并在控制台中显⽰消息。

【练习题】3.接⼝:创建⼀个名称为Vehicle的接⼝,在接⼝中添加两个带有⼀个参数的⽅法start()和stop()。

在两个名称分别为Bike和Bus的类中实现Vehicle接⼝。

创建⼀个名称为interfaceDemo的类,在interfaceDemo的main()⽅法中创建Bike和Bus对象,并访问start()和stop()⽅法。

【练习题】4.接⼝:创建⼀个名称为Vehicle的接⼝,在接⼝中添加两个带有⼀个参数的⽅法start()和stop()。

在两个名称分别为Bike和Bus的类中实现Vehicle接⼝。

创建⼀个名称为interfaceDemo的类,在interfaceDemo的main()⽅法中创建Bike和Bus对象,并访问start()和stop()⽅法。

【练习题】5.抽象类、继承、接⼝综合设计⼀个系统:XXX门的实现过程:流程:设计⼀张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开门openDoor()和关门closeDoor();然后对门进⾏另外的功能设计,防盗--theftproof()、防⽔--waterproof()、防弹--bulletproof()、防⽕、防锈…… 要求:利⽤继承、抽象类、接⼝的知识设计该门【练习题】6.抽象类、继承、接⼝综合设计⼀个系统:xxx纯净⽔⽣产线⽬前流程是:从某个地⽅把⽔取出来,然后经过缓冲,过滤,加热和放糖的步骤 abstract ⽔{public void ⽔();}interface 过滤{}interface 缓冲{}interface 加热{}interface 放糖{}class 纯净⽔1 extends ⽔ imps 过滤,缓冲{}class 纯净⽔2 extends ⽔ imps 缓冲{}class 纯净⽔2 extends ⽔ imps 过滤{}。

抽象类和接口习题

抽象类和接口习题

抽象类和接口习题一、易错概念题1.以下方法错误的是(A D)A 覆盖方法包括成员方法的覆盖和成员变量的覆盖B 成员方法的覆盖是多态的一种表现形式C 子类可以调用父类中被覆盖的方法D 任何方法都可以被覆盖分析:在子类中调用父类方法使用super关键字。

super.a() 就可以调用父类的a方法。

在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是不会进行覆盖的。

如果子类本身没有定义使用this关键字可以去访问父类的成员变量。

最后final修饰的方法不能被覆盖覆盖即重写和重载一起都是多态的表现形式。

(重载、重写和覆盖)override->重写(=覆盖)、overload->重载、polymorphism -> 多态override是重写(覆盖)了一个方法,以实现不同的功能。

一般是用于子类在继承父类时,重写(重新实现)父类中的方法。

重写(覆盖)的规则:1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。

3、重写的方法的返回值类型必须和被重写的方法的返回一致;4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。

6、静态方法不能被重写为非静态的方法(会编译出错)。

overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。

重载的规则:1、在使用重载时只能通过相同的方法名、不同的参数形式实现。

不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);2、不能通过访问权限、返回类型、抛出的异常进行重载;3、方法的异常类型和数目不会对重载造成影响;对比:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。

抽象类和接口习题

抽象类和接口习题

抽象类和接口习题一、选择题1. Java语言的类间的继承关系是A) 多重的B) 单重的C) 线程的D) 不能继承2. 以下关于Java语言继承的说法正确的是A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3. 现有两个类A、B,以下描述中表示B继承自A的是A) class A extends B B) class B implements AC) class A implements B D) class B extends A4. 下列选项中,用于定义接口的关键字是A)interface B) implements C) abstract D) class5. 下列选项中,用于实现接口的关键字是A)interface B) implements C) abstract D) class二、填空题1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。

2. 属性的隐藏是指子类重新定义从父类继承来的__________。

3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

4. Java 仅支持类间的____重继承。

5. 抽象方法只有方法头,没有________。

6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。

7. 接口中所有属性均为_________、_________和________的。

(public、static、final)三、程序阅读题1.现有类说明如下,请回答问题:public class A{String str1=" Hello! \t";String str2=" How are you? ";public String toString( ){ return str1+str2; }}public class B extends A{String str1="\b\b,Bill.";public String toString( ){ return super.str1+str1; }}问题:1)类A和类B是什么关系?2)类A和类B都定义了str1属性和方法toString( ),这种现象分别称为什么?3)若a是类A的对象,则a.toString( )的返回值是什么?4)若b是类B的对象,则b.toString( )的返回值是什么?2.现有一个类定义如下,请回答问题:class Employee{String name;int age;double wage;static int No=0;Employee(String a1,int a2,double a3){name=a1; age=a2; wage=a3;No++;}在使用该类时,已使用下面语句生成了该类的对象:Employee e1,e2;e1=new Employee("王劲",26,6300);e2=new Employee("张山",30,3800);问题:1)/doc/cb9160778.html,,e2.age,e2.wa ge的值各是什么?2)生成对象e1、e2后,e1.No值为多少?能否通过类名做前缀引用属性No?3.阅读程序,回答问题。

JAVA继承,接口,抽象类等练习

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 )。

实用教程习题集第4章

实用教程习题集第4章

实⽤教程习题集第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. 动态多态性只针对静态成员域A. 重载⽅法的参数形式(类型、参数个数或参数顺序)必须不同B. 重载⽅法的参数名称必须不同C. 重载⽅法的返回值类型必须不同D. 重载⽅法的修饰词必须不同4. 接⼝的所有成员⽅法都具有()修饰的特性。

面试中有关抽象类的相关题目

面试中有关抽象类的相关题目

⾯试中有关抽象类的相关题⽬⾯试题笔试中的抽象1、判断下⾯这段代码是否有错,错在什么地⽅?1public class Something {2void doSomething ()3 {4private String s = "";5int l = s.length();6 }7 }8//有错吗?答案:有错,第4⾏的局部变量有修饰符,所有的局部变量都不可以添加任何修饰符2、判断下⾯的代码是否有错1public abstract class AbstractText {23public abstract void add();4private abstract void mults();5public int mux();6 }答案:有错,有两处错误,分别是第4⾏和第5⾏。

以下我来分别进⾏说明:<1>、第4⾏错在抽象⽅法修饰符上,抽象⽅法的修饰符只能是 public 或者是 protected 的,(因为如果为private,则不能被⼦类继承,⼦类便⽆法实现该⽅法),缺省情况下默认为public,编译时错误如下图提⽰:<2>、第5⾏错在定义的⽅法不是抽象⽅法但是还没有⽅法体,修改⽅法有两种,在编译时提⽰如下图:⽅法1、添加⽅法体1public abstract class AbstractText {2public abstract void add(); //公共的抽象⽅法3protected abstract void mults(); //受保护的抽象⽅法4public int mux(){ //抽象类⾃⼰的⽅法5return 1;6 }7 }⽅法2、添加abstract关键字,将其变成抽象⽅法1public abstract class AbstractText {2public abstract void add(); //公共的抽象⽅法3protected abstract void mults(); //受保护的抽象⽅法4public abstract int mux(); //公共的抽象⽅法5 }3、判断下列代码是否有误,错在什么地⽅,怎样才是正确的1public class AbstractText {2public abstract void add(); //公共的抽象⽅法3protected abstract void mults(); //受保护的抽象⽅法4public abstract int mux(); //公共的抽象⽅法5public AbstractText(){ //拥有⾃⼰的构造函数6super();7 }8public static void main(String[] args) {9 AbstractText abstracttext = new AbstractText(); //实例化对象10 abstracttext.add(); //调⽤add⽅法11 }12 }答案:共有3处错误,分别是第1、9、10⾏,分析如下:<1>、第1⾏错误:因为AbstractText 类中包含 abstract ⽅法,所以这个类是抽象类,抽象类必须添加 abstract 关键字;<2>、第9⾏错误:因为抽象类中有⽆具体实现的抽象⽅法,所以不能使⽤抽象类创建对象;<3>、第10⾏错误:add⽅法是抽象⽅法,没有实现,不能调⽤。

抽象类&接口&内部类章节自测题

抽象类&接口&内部类章节自测题

抽象类&接口&内部类章节自测题一、选择1、定义一个接口必须使用的关键字是(C)A. publicB. classC. interfaceD. static2、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是(B C )。

(多选)A. B x1= new B( );B. B x1= new C( );C. C x1=new C( );D. C x1= new B( );3、下面说法正确的是( A BC D )。

(多选)A. final 可修饰类、属性(变量)、方法。

B. abstract可修饰类、方法。

C. 抽象方法只有方法头,没有方法体。

D. 关键字final和abstract不能同时使用。

4、下面说法正确的是( A CD)。

(多选)A.如果某公共接口被声明在一个源文件中,则接口必须与源文件具有相同名字。

B.如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。

C.如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。

D.接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。

5、抽象方法:( C )A.可以有方法体B.可以出现在非抽象类中C.是没有方法体的方法D.抽象类中的方法都是抽象方法6、关于接口哪个正确?(A )A.实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事7、下列哪个类的声明是正确的?(D)A.abstract final class HI{}B.abstract private move(){}C.protected private number;D.public abstract class Car{}8、关于类继承的说法,正确的是(B )。

A.Java 类允许多重继承B.Java接口允许多继承C.接口和类都允许多继承D.接口和类都不允许多继承9、以下关于abstract的说法,正确的是( D )。

java填空 简答 大题考试复习

java填空 简答 大题考试复习

一、填空题1、Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。

2、在Java数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,中文字符还是英文字符都是占用2字节内存空间。

3、设x = 2 ,则表达式( x + + )/3 的值是0 。

5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

最终(final)方法是不能被当前类的子类重新定义的方法。

6、创建一个名为MyPackage 的包的语句是package MyPackage ; ,该语句应该放在程序的位置为:应该在程序第一句。

7、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。

二、简答题。

1.对象有哪些属性?什么是状态?什么是行为?对象就是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为,通过对象的封装,实现了模块化和信息隐藏,通过对类的成员施加一定的访问权限,实现了类中成员的信息隐藏2、什么是继承?答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。

3.类变量和实例变量有何区别?答:由static修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变量在内存里。

然后那些由此类产生的实例便可分享这些类变量。

实例变量指不是用static修饰的变量,可供实例方法使用。

实例变量会复制于每一个从类产生的实例中。

4.请简述重载和重写的区别?答:方法的重写和重载是Java多态性的不同表现。

重写是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

计算机2级java试题及答案

计算机2级java试题及答案

计算机2级java试题及答案一、选择题(每题2分,共20分)1. Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. package答案:B2. 在Java中,下列哪个修饰符表示成员变量或方法是私有的?A. publicB. privateC. protectedD. static答案:B3. 下列哪个选项不是Java的集合框架中的一部分?A. ListB. SetC. MapD. Array答案:D4. Java中,下列哪个方法用于将字符串转换为字符数组?A. toCharArray()B. split()C. substring()D. length()答案:A5. 在Java中,下列哪个关键字用于捕获异常?A. tryB. catchC. finallyD. throw答案:B6. Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. abstractD. package答案:A7. 在Java中,下列哪个关键字用于定义一个方法?A. classB. methodC. functionD. void答案:D8. Java中,下列哪个关键字用于定义一个抽象类?A. classB. abstractC. interfaceD. package答案:B9. 在Java中,下列哪个关键字用于定义一个包?A. classB. packageC. importD. public答案:B10. Java中,下列哪个关键字用于定义一个静态方法?A. staticB. finalC. abstractD. synchronized答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承______个父类。

答案:一2. Java中,______关键字用于定义一个常量。

答案:final3. Java中,______关键字用于定义一个内部类。

java上机试题及答案

java上机试题及答案

java上机试题及答案Java上机试题及答案一、选择题1. 在Java中,以下哪个关键字用于声明一个类?- A. class- B. struct- C. interface- D. enum答案:A2. Java中用于捕获异常的关键字是?- A. try- B. catch- C. throw- D. finally答案:B二、填空题1. Java中,单精度浮点数使用的数据类型是________。

答案:float2. Java中,用于声明字符串的关键字是________。

答案:String三、编程题1. 编写一个Java程序,计算并输出100以内所有偶数的和。

```javapublic class EvenSum {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("The sum of even numbers within 100 is: " + sum);}}```四、简答题1. 简述Java中接口和抽象类的区别。

答案:接口和抽象类都是Java中实现抽象化的方式。

接口可以包含常量、抽象方法和默认方法,但不能包含状态信息;抽象类可以包含状态信息和非抽象方法。

接口中的所有方法默认为public,而抽象类中可以有private和protected方法。

接口不能实现其他接口,但可以继承多个接口;抽象类可以继承一个类,但不能继承另一个抽象类。

2. 描述Java中垃圾回收机制的基本原理。

答案:Java中的垃圾回收机制主要依赖于垃圾收集器(Garbage Collector, GC)。

GC通过追踪对象的引用来识别哪些对象是可达的,即被程序直接或间接引用的对象。

不可达的对象被认为是垃圾,GC会定期地回收这些对象占用的内存。

接口和抽象类习题-答案

接口和抽象类习题-答案

(一)选择题1.以下哪个接口的定义是正确的?B{ void print() { } ; }interface B { void print() ; }interface B extends A1,A2 { abstract void print(){ }; }B { void print();}2.定义一个接口时,下列哪个关键字用不到?3.定义一个接口时,要使用如下哪个关键字?4.在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口。

或者protected5.下列类头定义中,错误的是 ?x extends yclass x extends yx extends y implements y1x6.下列类定义中,不正确的是?xx extends yx implements y1,y2class x extends X1,X27.Java中能实现多重继承功能的方式是?A.接口B.同步C.抽象类D.父类8.下列叙述正确的是?中允许多重继承一个类只能实现一个接口中只能单重继承中一个类可以继承多个抽象类(二)简答题1)接口中方法的修饰符都有哪些?属性的修饰符有哪些?2)接口的作用是什么?简述接口与类的关系。

3)请写出下列输出结果。

interface A {int x = 1;void showX();}interface B {int y = 2;void showY();}class InterfaceTest implements A, B {int z = 3;public void showX() {"x=" + x);}public void showY() {"y=" + y);}public void showMe() {"z=" + (z + x + y));}}public class Class1 {public static void main(String[] args) {InterfaceTest myObject = new InterfaceTest();();();();}}X=1Y=2Z=6(三)编程题1)定义一个有抽象方法display()的超类SuperClass,以及提供不同实现方法的子类SubClassA和SubClassB,并创建一个测试类PolyTester,分别创建SubClassA和SubClassB的对象。

Java程序设计(接口)期末单元测试与答案

Java程序设计(接口)期末单元测试与答案

一、单选题1、下列关于抽象类和抽象方法,叙述错误的是()。

A.抽象类中的普通方法,可以不必实现B.在类中没有方法体的方法,就是抽象方法C.抽象类中的抽象方法必须被实现D.如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象方法正确答案:D2、下列关于抽象方法,不正确的是()。

A.如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类B.抽象方法必须为public或者protectedC.抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类D.抽象类能直接实例化,需要依靠子类采用向上转型的方式处理正确答案:D3、已知关于抽象方法错误代码,正确修改是():class Base{abstract void hello(){System.out.println("hello");}}A.final class Base{ abstract void hello();}B.public class Base{ abstract void hello();}C.abstract class Base{ abstract void hello();}D.class Base{ void hello();}正确答案:C4、下列关于抽象类和接口说法不正确的是()。

A.一个类可以继承多个抽象类,却只可以实现一个接口B.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法C.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的D.抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法正确答案:A5、下面关于接口的说法不正确的是()。

A.子接口继承父接口,使用的关键字是implementsB.接口中所有的方法都是抽象的C.接口是Java中的特殊类,包含常量和抽象方法D.接口中所有方法的访问权限都是public正确答案:A6、一个类通过()关键字声明自己实现一个或多个接口。

Java基础篇_有关接口和抽象类的几道练习题(分享)

Java基础篇_有关接口和抽象类的几道练习题(分享)
//第二级抽象类 abstract class 普通数学老师标准 extends 数学老师标准{ void 讲数学(){ System.out.println("我能讲数学"); } }
//第三级抽象类 class 真正的数学老师 extends 普通数学老师标准{ //注意这里能不能用abstract修饰,修饰了以后会对上下的影响 //可以重写,也可以不重写 void 讲数学(){ System.out.println("我能讲高数"); } int add(int a,int b){ return a+b; } } class Test{
class 金融机构{ void 货币流通(){ System.out.println("货币流通"); }
} class 工商银行 extends 金融机构 implements 银行标准, 建筑标准 {
public void 取钱() { System.out.println("钱进了银行");
package TT;
interface 银行标准{ int MONEY=9900000; void 取钱(); void 存钱();
}
class 工商银行 implements 银行标准{ public void 取钱(){ System.out.println("钱进银行了"); }
@Override//全部方法都拿来 public void 存钱() {
bank.kaimen(); bank.guanmen(); } }
5.设计一个类,在继承一个类的同时,实现其的两个接口(具体是什么接口自行设计)
package TT; interface 建筑标准{

3-20面试题

3-20面试题

1. >>和>>>的区别?答:>>和>>>都是右位移,区别是>>>左边空出的位以0填充。

2.Extends和implements的区别?Extends 后面跟的是类,表示继承关系;Implements后面跟的是接口,便是实现接口(可以是多个)。

3.抽象类和接口的区别?1、抽象类里面可以有非抽象方,但接口里面只能有抽象方法声明方法的存在而不去实现它的来被叫做抽象类(abstract class),它用于要创建一个体现某些具体行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

不能创建abstract类的实例。

2、接口是抽象类的变体。

在接口中,所有的放大都是抽象的。

多继承性可通过实现这样的接口而获得。

接口中的所有方法都是抽象的,没有一个程序体。

接口只可以定义static final成员变量。

接口的实现与子类相似,除了该实现类不能再接口定义中继承行为。

4.启动一个线程对象,是用start()还是用run(),为什么?调用start();Tread类中start()方法是开始线程的方法。

Start()方法会用特殊的方法自动调用run方法。

Run()Tread类中start()方法是开始线程的方法。

start()方法会用特殊的方法自动调用run()方法。

run()方法是Tread的具体实现。

你继承了Thread类后就通过重写run()方法来说明线程的行为,调用start()方法来开始线程。

5.J2SE中怎样实现高效率绘声绘制直线?6.Java iterator怎样使用?7.Hash表中的元素遍历的顺序是什么?8.链表和动态数组的区别是什么?如果随机的存放1k的数据,使用以上哪种数据结构比较合适,为什么?9.什么是字节序?10.在通常情况下,成员变量一般定义为什么访问级别?11.什么是二叉树,它的遍历顺序是什么?。

C#高级复习下(含答案)

C#高级复习下(含答案)

C#高级复习(下)1)在C#中,关于抽象类的说法错误的是()。

(选择一项)A.使用abstract关键字定义抽象类B.抽象类中可以包含抽象方法C.抽象方法可以有实现D.包含抽象方法就一定是抽象类2)在C#中,使用( )访问修饰的方法被称为抽象方法。

(选择一项)A.thisB.abstractC.newD.virturl3)分析如下C#代码,如果输出结果是“Dog Eation……”,下划线需要填写的代码是( )。

(选择一项) abstract class Animal{public __________ void Eat();}Class Dog:Animal{public _____ void Eat(){Console.WriteLine(“Dog Eating……”);}static void Main(string[] args){1 / 25Animal animal = new Dog();animal.Eat();}}A.abstract ,不填B.abstract ,overrideC.virtual, 不填D.virtual, override4)在C#的语言特性中,关于抽象类,以下描述正确的是()(选择一项)A.在抽象类包含全部已经实现的方法的时候,抽象类可以实例化B.子类可以同时实现多个抽象类C.抽象类中的所有方法必须都不能有实现D.抽象类中的抽象方法不能有实现5)分析以下使用抽象类的C#代码,取最终的运行结果是()(选择一项)public abstract class Class1{public void F(){Console.Write(“1“);}abstract public void ABS()}public class Class2:Class12 / 25{public override void ABS(){Console.Write(“3“);}public Class2(){Console.Write(“2“);}static void Main(){Class1 objB = new Class1();objB.ABS();}}A.12B.21C.13D.代码存在错误E.236)判断下列类MyClass 的定义中是合法的抽象类的是()。

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

下面的代码如有错误,请指出并加以改正。

(1)
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) { }//抽象方法不能有实现}
(2)
public class Something {
void doSomething() {
private String s = "";//局部变量之前不能放任何修饰符
int l = s.length();
}
}
(3)
abstract class Something {
private abstract String doSomething();//abstract,private不能同时修饰一个方法}
(4)
public class Something {
public int addOne(final int x) {
return ++x;
}
}
//final定义的常量不能被修改
(5)
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
//final定义的是一个方法,不是里面的变量,所以正确
(6)
class Something {
final int i;//final定义的常量没有初始值
public void doSomething() {
System.out.println("i = " + i);
}
}
(7)
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.pirntln("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}//静态方法中不能直接调用类的成员方法
(8)
interface A {
int x = 0;
}
class B {
int x = 1;
}
class C extends B implements A {
public void pX() {
System.out.println(x);//x的用意不明显,不知道调用的是A还是B的x }
public static void main(String[] args) {
new C().pX();
}
}
(9)
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("Pingpang");//相当于public static final,之后不能再修改}
public class Ball implements Rollable {
private String name;
public Ball(String name) {
= name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
public String getName() {
return name;
}
public static void main(String[] args) {
}
}。

相关文档
最新文档