资源描述
一、选择题
1、为了区分重载多态中同名的不同方法,要求( A )。
A) 采用不同的参数列表 B) 返回值类型不同
C) 调用时用类名或对象名做前缀 D) 参数名不同
2、定义主类的类头时可以使用的访问控制符是( C )。
A) private B) protected C) public D) private protected
3、下列整型的常量属性 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 的构造函数中正确的是( ACD)。
A) x( int m){ ... } B) void x( int m){ ... }
C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... }
8、下列类头定义中,正确的是( ACD)。
A) class x B) public x extends y
{ .... } { .... }
C) public class x extends y D) class x extends y implements y1
{ .... } { .... }
9、下面是有关子类继承父类构造函数的描述,其中正确的是( C )。
A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。
B) 子类无条件地继承父类不含参数的构造函数。
C) 子类通过super关键字调用父类的构造函数。
D) 子类无法调用父类的构造函数。
10、下面说法正确的是( A )。
A) final 可修饰类、属性、方法。
B) abstract可修饰类、属性、方法。
C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。
D) 用final修饰的变量,在程序中可对这个变量的值进行更改。
11、现有两个类A、B,以下描述中表示B继承自A的是( D )。
A) class A extends B B) class B implements A
C) class A implements B D) class B extends A
12、Java中的每一个类:( AC )
A)只能有一个父类 B)可以有多个父类
C)可以没有父类 D)只能实现一个接口
13、以下程序运行结果是:(A )
public class FatherClass{
public FatherClass(){
System.out.print ("Father ");
}
}
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.print ("Child ");
}
public static void main(String[] args) {
FatherClass fc = new ChildClass();
}
}
A) FatherChild B) Child
C) Father D) 出错
15、同一类中有两个以上方法同名称,Java语言规定:( C )
A) 不允许重载;
B) 父类的方法与子类的方法不构成重载;
C) 重载方法的参数表必须不同;
D) 重载方法类型必须不同。
16、下述关于继承的说法正确的是:( CD )
A) 要从一个父类派生出一个子类,就要将父类代码全部复制过来,再添上子类特有的代码。
B) 声明继承某个父类就意味着可以使用父类的全部非private变量和方法。
C) 子类中可以定义与父类中相同的方法。
D) 默认情况下,子类调用的是父类的无参构造方法。
17、关于在子类中调用父类构造方法的问题,下述说法正确的是:( B)
A) 子类构造方法一定要调用父类的构造方法;
B) 子类构造方法只能在第一条语句调用父类的构造方法;
C) 调用父类构造方法的方式是:父类名(参数表);
D) 默认情况下子类的构造方法将调用父类的无参数构造方法。
19、子类中定义的方法与父类方法同名且同形时称父类方法被复盖(也称重写),以下说法正确的是:( BC )
A) 父类对象调用的也是子类的方法;
B) 在子类中仍可用super.方法名调用父被复盖的方法;
C) 父类中用final修饰的方法不允许被复盖;
D) 子类方法必须与父类被重写的方法在访问权限、返回值类型、参数表等方面完全一致。
20、用abstract修饰的类称为抽象类,它们:(A )
A) 只能用以派生新类,不能用以创建对象;
B) 只能用以创建对象,不能用以派生新类;
C) 既可用以创建对象,也可用以派生新类;
D) 既不能用以创建对象,也不可用来派生新类。
21、类中的某个方法是用final修饰的,则该方法:(C )
A) 是虚拟的,没有方法体; B)是最终的,不能被子类继承;
C)不能用被子类同名方法复盖; D)不能用被子类其它方法调用。
22、一个类中,用static修饰的变量称静态变量:( A)
A) 同一时刻,该类的所有对象中该变量值都相同;
B) 所有对象中的方法都不能对该变量进行赋值操作;
C) 其值不能改变;
D) 与实例变量一样,每个对象中的值互相独立。
23、一个类中,用static修饰的方法称静态方法:( B )
A) 该类中其它方法不能调用它;
B) 它不能直接调用类中其它不用static修饰的方法;
C) 没有用类创建对象之前,类外无法调用该方法;
D) 类外调用该方法的方式必须是:对象名.方法名(实参数据)。
24、定义一个类时,若希望某成员方法调用范围是同一包内所有类,其修饰词应为:(D)
A)public B)private C)protected D)默认
25、关于接口以下说法正确的是:( C)
A) 接口中的变量必须用public static final三个修饰词修饰;
B) 接口中的方法必须用public abstract两个修饰符修饰;
C) 一个接口可以继承多个父接口;
D) 接口的构造方法名必须为接口名。
26、以下关于接口对象的说法中正确的是:A
A) 接口只能被类实现,不能用来声明对象;
B) 接口对象可以用关键词new创建;
C) 接口对象可以等于任何类的对象;
D) 接口对象只能等于实现该接口的类的对象;
27、若有如下接口A的定义,下列哪些类实现了该接口(C )
interface A {
void method1(int i);
void method2(int j);
}
A)class B implements A{
void method1( ) { }
void method2( ) { }
}
B)class B {
void method1(int i ) { }
void method2(int j ) { }
}
C)class B implements A {
void method1(int i ) { }
void method2(int j ) { }K
}
D)class B implements A{
public void method1(int x ) { }
public void method2(int y ) { }
}
28、关于Java中包的概念,以下正确的是:D
A) 包是一些类与接口的集合;
B) Java的包中可以包含子包;
C) 包中的类与子包中的类被认为是同一包内;
D) 包中的类不能访问子包中非public的类。
30、关于以下程序叙述正确的是:( A)
class Base {
Base(int i){
System.out.print(“Base ”);
}
}
class Test extends Base{
Test ( ){
System.out.print(“Test ”);
}
public static void main(String[] args){
Test b = new Test();
}
}
A)程序运行出错,因为Base类未定义构造方法;
B)程序运行正常,输出Base ;
C)程序运行正常,输出Base Test ;
D)程序运行正常,但无输出 。
二、编程练习
【1】覆盖、继承
建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过不同的构造方法创建实例。至少要求: 汽车能够加速,减速,停车。 再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法
class Auto
{
int luntai;
String color;
double weight;
double v;
Auto(){
}
Auto(double v){
}
void addV(){
}
void upV(){
}
void stop(){
}
}
class Car extends Auto
{
String kongtiao;
String CD;
void addV(){
}
void upV(){
}
}
【2】抽象类与继承
设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。使用继承将这些图形分类,找出能作为基类部分的共同特征(如校准点)和方法(如画法、初始化),并看看这些图形是否能进一步划分为子类。
class Pic
{
double s;
void huaFa(){
}
void getS(){
}
}
class JuXing extends Pic
{
int height;
int width;
JuXing(int height,int width){
This height=height;
}
void huaFa(){
}
void getS(){
}
}
class SanJiao extends Pic
{
int a;
int b;
int c;
void huaFa(){
}
void getS(){
}
}
class Yuan extends Pic
{
int r;
void huaFa(){
}
void getS(){
}
}
class TuoYuan extends Pic
{
void huaFa(){
}
void getS(){
}
}
class ZhengFangxing extends JuXing
{
int height;
int width;
void huaFa(){
}
void getS(){
}
}
【3】抽象类:
创建一个Vehicle类并将它声明为抽象类。在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值。创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。在Car类中,应当显示“四轮车”信息;而在Motorbike类中,应当显示“双轮车”信息。创建另一个带main方法的类,在该类中创建Car和Motorbike的实例,并在控制台中显示消息。
abstract class Vehicle
{
String NoOfWheels();
}
class Car extends Vehicle
{
String NoOfWheels(){
System.out.println("四轮车");
return null;
}
}
class Motorbike extends Vehicle
{
String NoOfWheels(){
System.out.println("双轮车");
return null;
}
}
public class Test
{
public static void main(String[] args){
Vehicle v=new Car();
v.NoOfWheels();
v=new Motorbike();
v.NoOfWheels();
}
}
【4】接口:
创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start()和stop()。在两个名称分别为Bike和Bus的类中实现Vehicle接口。创建一个名称为interfaceDemo的类,在interfaceDemo的main()方法中创建Bike和Bus对象,并访问start()和stop()方法。
public interface Vehicle
{
public void start();
public void stop();
}
class Bike implements Vehicle
{
public void start(){
}
public void stop(){
}
}
class Bus implements Vehicle
{
public void start(){
}
public void stop(){
}
}
public class InterfaceDemo
{
public static void main(String[] args){
Bike b1=new Bike();
Bus b2=new Bus();
b1.start();
b1.stop();
b2.start();
b2.stop();
}
}
【5】抽象类、继承、接口综合
设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开门openDoor()和关门closeDoor();然后对门进行另外的功能设计,防盗--theftproof()、防水--waterproof()、防弹--bulletproof()、防火、防锈……
要求:利用继承、抽象类、接口的知识设计该门
abstract class Door
{
abstract public void openDoor();
abstract public void closeDoor();
}
interface Door1
{
public void theftproof();
public void waterproof();
public void bulletproof();
public void fireproof();
}
Public class Door2 extends Door implements Door1
{
public void openDoor(){
}
public void closeDoor(){
}
public void theftproof(){
}
public void waterproof(){
}
public void bulletproof(){
}
public void fireproof(){
}
}
展开阅读全文