接口和抽象类习题-答案

合集下载

Java程序设计案例教程 习题答案 第4章 面向对象 下

Java程序设计案例教程  习题答案  第4章 面向对象 下

第4章面向对象(下)一、填空题1. 12.重写3. final4. instanceof5. Implements6.编译时异常7. RuntimeException8.逗号二、判断题1.对2.对3.错4.对5.错6.对7.对8.错9.对10.错三、选择题1. B2. D3. D4. D5. B6. D7. C8. B9. B10.D11.C四、简答题1.抽象类和接口有如下区别:1)抽象类可以有构造方法,接口中不能有构造方法。

2)抽象类中可以有普通成员变量,接口中没有普通成员变量。

3)抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

4)抽象类中的抽象方法的访问类型可以是public, protected和(默认类型),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

5)抽象类中可以包含静态方法,接口中不能包含静态方法。

6)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认为public static final类型。

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

2.在类的继承中需要注意的问题:1).在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类;2).多个类可以继承一个父类;3).在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类;4).在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。

五、编程题1.Employee.java139//定义一个测试类140 public class Test{141public static void main(String[] args){142//声明一个Employee类型的数组,并创立不同子类型的对象143Employee [ ] employee = {new SalariedEmployee (“张三”,1,6000), newHourlyEmployee (“李四”,2,50,180) , new SalesEmployee (“王五” ,3, 6500,0・15),new BasePlusSalesEmployee(, 4,5000,0.15,2000)}; 144//打印每个员工的工资145for (int i = 0; i < employee.length ;i + + )146System.out.printin(Math.round(employee[i].getSalary(10)));147)148)。

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。

java笔试题及答案

java笔试题及答案

java笔试题及答案在这篇文章中,我将为大家提供一些常见的Java笔试题及其答案。

无论你是准备面试还是进行自我评估,这些问题都能帮助你进一步了解Java编程语言和相关概念。

请您放心,以下笔试题的解答均为准确的,并能满足您的需求。

1. 什么是Java中的包(package)?答:Java中的包是用来组织类和接口的一种机制。

它将相关的类和接口放在一个单独的包中,从而使得代码更易于管理和维护。

可以将包理解为文件夹,类和接口则是包内的文件。

2. Java中的四种访问修饰符是什么?分别解释它们的作用。

答:四种访问修饰符分别是public、protected、private和default (即没有修饰符)。

它们用于限定类、成员变量和方法的访问范围。

具体作用如下:- public:可以被任何类访问。

- protected:可以被同一包内的类和子类访问。

- private:只能被所属类访问。

- default:只能被同一包内的类访问。

3. 什么是静态变量和静态方法?它们有什么特点?答:静态变量(static variable)是指在类中声明的变量,被所有该类的对象所共享。

静态方法(static method)是指在类中声明的方法,可以直接通过类名调用,无需创建对象。

静态变量和静态方法的特点如下:- 它们属于类而不是对象,因此可以在没有对象的情况下访问。

- 静态变量在内存中只有一个副本,所有对象共享该变量。

- 静态方法无法访问非静态成员,因为非静态成员属于对象,而静态方法没有隐式的对象引用。

4. Java中的重载(overload)和重写(override)有什么区别?答:重载是指在一个类中定义多个方法,具有相同的名称但参数类型或个数不同。

重载实现了多态性,可以根据不同的参数类型或个数选择调用相应的方法。

而重写是指子类重新定义父类的方法,并使用相同的名称、参数和返回类型。

重写实现了多态性,可以在运行时动态选择调用子类的方法还是父类的方法。

《Java基础入门》_课后习题答案大一计算机专业4

《Java基础入门》_课后习题答案大一计算机专业4

《Java基础入门》课后习题答案第4章面向对象(下)一、填空题1、一个类如果实现一个接口,那么它就需要实现接口中定义的全部方法,否则该类就必须定义成抽象类。

2、一个类可以从其他的类派生出来。

派生出来的类称为子类、用于派生的类称为父类或者基类。

3、定义一个Java 类时。

如果前面加使用final 关键词修饰,那么该类不可以被继承。

4、在Java语言中,所有的类都直接或间接继承自Object 类5、一个Lambda 表达式由三个部分组成,分别为参数列表、“->”、表达式主体二、判断题1、错2、对3、错4、对5、错1.抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。

(×)2. Java 中被final 关键字修饰的变量,不能被重新赋值。

(√)3.不存在继承关系的情况下,也可以实现方法重写。

(×)4.函数式接口在Java中是指有且仅有一个抽象方法的接口。

(√)5.接口中只能定义常量和抽象方法。

(×)三、选择题1、B2、ABC3、C4、C5、A1.在类的继承关系中,需要遵循以下哪个继承原则?(B)A.多重B.单一C.双重D.不能继承2.关于super关键字以下说法哪些是正确的?(多选)(ABC)A. super 关键字可以调用父类的构造方法B.super 关键字可以调用父类的普通方法C. super 与this 不能同时存在于同一个构造方法中D. super 与this 可以同时存在于同一个构造方法中3.类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?(C)A. publicB. protectedC. privateD. default4.在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?(C)A. inheritsB. implementsC.extendsD. modifies5.已知类的继承关系如下:class Employee;class Manager extends Employeer class Director extends Employee;则以下语句能通过编译的有哪些?(A)A.Employee e=new Manager();B. Direetor d=new Manager();B.C. Director d=new Employee(); D. Manager menew Director();四、简答题1.简述什么是方法重写2.简述什么是多态。

抽象类和接口习题

抽象类和接口习题

抽象类和接口习题一、易错概念题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、方法的异常类型和数目不会对重载造成影响;对比:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。

javaoop测试题及答案

javaoop测试题及答案

javaoop测试题及答案一、选择题(每题2分,共20分)1. Java中,哪个关键字用于定义类?A. classB. interfaceC. enumD. struct2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above3. 在Java中,哪个关键字用于实现继承?A. extendsB. implementsC. overrideD. abstract4. 以下哪个是Java的包装类?A. StringB. IntegerC. ArrayListD. HashMap5. 以下哪个是Java中的错误类型?A. NullPointerExceptionB. IOExceptionC. RuntimeExceptionD. Both A and C6. Java中的main方法的返回类型是什么?A. voidB. intC. StringD. Object7. 下列哪个是Java集合框架中接口?A. ArrayListB. ListC. HashMapD. Iterator8. 在Java中,哪个关键字用于实现多态?A. newB. instanceofC. superD. override9. 以下哪个是Java的异常处理关键字?A. tryB. catchC. finallyD. All of the above10. 在Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. enum答案:1. A2. D3. A4. B5. D6. B7. B8. D9. D10. B二、填空题(每空2分,共20分)1. Java是一种________面向对象的编程语言。

2. 一个Java类可以继承另一个类的__________和实现多个接口。

3. Java中的__________关键字用于定义一个方法或类,该方法或类可以被子类继承并重写。

Java复习题目(有答案)

Java复习题目(有答案)

复习题目一.选择题(每小题2分,共30分)1.main()方法是Java Application程序执行的入口点,关于main()方法的方法头下面哪一项是合法的? ( )A.public static void main( )B.public static void main(String args[ ])C.public static int main(Stnng[ ]arg)D.public Void main(Stnng arg[ ])2.以下关于抽象类和接口的说法正确的是()。

A. 抽象类可以用来定义接口B.定义抽象类时需要finalC. 抽象类中的所有方法都是具体的D.抽象类可以是对接口的实现3.下列不属于java.awt包中的基本概念的一项是( )。

A.容器B.构件C.线程D.布局管理器4.下列Swing构件中,属于中间容器的一项是( )。

A.JFrameB.JToolbarC.JLabelD.JButton5.使用JDBC的主要好处是()。

A.它是一个简单易用的数据库管理系统B.允许开发者不用改变程序代码就可以改变底层的数据库C.它是多平台的数据管理系统D.它能为数据库管理系统提供了一个图形用户界面6.SQL语言中的字符串常量使用什么符号括起来()?A.一对双引号("")B.一对单引号('')C.下划线(_)D.百分号(%)7.当程序执行时无法找到数据库驱动类时将产生()异常。

A.NoSuchClassException B.ClassCastException C.ClassNotFoundException D.IllegalClassException8.在使用PreparedStatement时,参数是从()开始计数的。

A.0 B.1 C.2 D.39.当对设有INSERT类型触发的数据表中的一条记录进行修改时,以下说法正确的是()。

A.INSERTED表中有一条记录B.DELETED表中有一条记录C.INSERTED和DELETED表中都有记录D.INSERTED和DELETED表中都没有记录10.paint()方法使用哪种类型的参数?A.Graphics B.Graphics2D C.String D.Color11.定义接口时需要使用关键字是( )。

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

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

A.private
B.protected
C.private或者protected
D.public
5.下列类头定义中,错误的是?
A.public x extends y
B.public class x extends y
C.class x extends y implements y1
D.class x
6.下列类定义中,不正确的是?
A.class x
B.class x extends y
C.class x implements y1,y2
D.public class x extends X1,X2
7.Java中能实现多重继承功能的方式是?
A.接口
B.同步
C.抽象类
D.父类
8.下列叙述正确的是?
A.Java中允许多重继承
B.Java一个类只能实现一个接口
C.Java中只能单重继承
D.Java中一个类可以继承多个抽象类
(二)简答题
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() {
System.out.println("x=" + x);
}
public void showY() {
System.out.println("y=" + y);
}
public void showMe() {
System.out.println("z=" + (z + x + y));
}
}
public class Class1 {
public static void main(String[] args) {
InterfaceTest myObject = new InterfaceTest();
myObject.showX();
myObject.showY();
myObject.showMe();
}
}
X=1
Y=2
Z=6
(三)编程题
1)定义一个有抽象方法display()的超类SuperClass,以及提供不同实现方法的子类SubClassA和SubClassB,并创建一个测试类PolyTester,分别创建SubClassA和SubClassB 的对象。

调用每个对象的display()。

要求:输出结果为:
display A
display B
2)创建一个接口,接口的名字叫TestInterface,接口里至少有一个常量String myVar = “Helo Interface”,两个抽象方法write()和read()。

相关文档
最新文档