收藏 分销(赏)

JAVA继承-接口-抽象类等练习.doc

上传人:s4****5z 文档编号:8803535 上传时间:2025-03-02 格式:DOC 页数:10 大小:78.50KB
下载 相关 举报
JAVA继承-接口-抽象类等练习.doc_第1页
第1页 / 共10页
JAVA继承-接口-抽象类等练习.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述
一、选择题 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(){ } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服