抽象类和接口补充题

合集下载

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. 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) {
}
}。

相关文档
最新文档