您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > java练习题-继承
一.extends和super的使用和方法的重写1.定义一个人的类(属性有名字,年龄。写一个能输出各个属性值的方法showInfo()),定义一个学生类(属性有性别),学生继承人类要求:(1)父类的属性赋值用构造方法来实现(分别用有参数构造方法和无参数构造方法实现)(2)子类的属性也用构造方法来赋值。(3)在子类中重写父类的showInfo()方法(4)声明学生类的对象,调用学生的显示信息的方法。2定义Animal父类,含有属性name,sex,age,方法sleep,run,编写一个子类Person,继承Animal类,然后调用父类的属性和方法二.1、试编写三个具有继承关系的类,A、B、C(B继承A,C继承B)。要求A中包含方法a1()、a2(),B类中的方法b1()访问了a1()和a2(),C类中的方法c1()访问了a1()、a2()、b1()。提示:(a1(),a2(),b1(),c1()这些方法体除了实现题目要求之外,其余内容可以任意编写。)2、请编码实现动物世界的继承关系:动物(Animal)具有行为:吃(eat)、睡觉(sleep)动物包括:兔子(Rabbit),老虎(Tiger)这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。请通过继承实现以上需求,并编写测试类AnimalTest进行测试。3、父类Person包含like()方法子类Son重写父类方法并打印输出4、(选做)父类Employee属性:name、sex,带一个构造方法Employee(Stringn,chars)子类Worker继承自Employee属性:charcategory;//类别booleandressAllowance;//是否提供服装津贴,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll()这个方法负责通过判断dressAllowance的值输出,是否提供服装津贴。新建一个类测试类InheDemo在main方法中新建一个Worker对象,输出这个对象的所有属性并调用isDressAll()方法得到津贴信息选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。)1.以下属于面向对象的特征的是(C,D)。(两项)A)重载B)重写C)封装D)继承2.以下代码运行输出是(C)publicclassPerson{privateStringname=”Person”;intage=0;}publicclassChildextendsPerson{publicStringgrade;publicstaticvoidmain(String[]args){Personp=newChild();System.out.println(p.name);}}A)输出:PersonB)没有输出C)编译出错D)运行出错3.在使用super和this关键字时,以下描述正确的是(A)A)在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B)super()和this()不一定要放在构造方法内第一行C)this()和super()可以同时出现在一个构造函数中D)this()和super()可以在static环境中使用,包括static方法和static语句块4.以下对封装的描述正确的是(D)A)只能对一个类中的方法进行封装,不能对属性进行封装B)如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C)封装的意义不大,因此在编码时尽量不要使用D)封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5.以下对继承的描述错误的是(A)A)Java中的继承允许一个子类继承多个父类B)父类更具有通用性,子类更具体C)Java中的继承存在着传递性D)当实例化子类时会递归调用父类中的构造方法6.以下程序的运行结果是(D)classPerson{publicPerson(){System.out.println(“thisisaPerson”);}}publicclassTeacherextendsPerson{privateStringname=”tom”;publicTeacher(){System.out.println(“thisisateacher”);super();}publicstaticvoidmain(String[]args){Teacherteacher=newTeacher();System.out.println(this.name);}}A)thisisaPersonthisisateachertomB)thisisateacherthisisaPersontomC)运行出错D)编译有两处错误7.以下说法错误的是()A)super.方法()可以调用父类的所有非私有方法B)super()可以调用父类的所有非私有构造函数C)super.属性可以调用父类的所有非私有属性D)this和super关键字可以出现在同一个构造函数中8.以下关于final关键字说法错误的是(A,C)(两项)A)final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B)final修饰的类肯定不能被继承C)final修饰的方法不能被重载D)final修饰的变量不允许被再次赋值9.访问修饰符作用范围由大到小是(D)A)private-default-protected-publicB)public-default-protected-privateC)private-protected-default-publicD)public-protected-default-private10.以下(D)不是Object类的方法A)clone()B)finalize()C)toString()D)hasNext()11.多态的表现形式有(A)A)重写B)抽象C)继承D)封装12.以下对重载描述错误的是(B)A)方法重载只能发生在一个类的内部B)构造方法不能重载C)重载要求方法名相同,参数列表不同D)方法的返回值类型不是区分方法重载的条件13.以下(D)添加到ComputerBook中不会出错classBook{protectedintgetPrice(){return30;}}publicclassComputerBookextendsBook{}A)protectedfloatgetPrice(){}B)protectedintgetPrice(intpage){}C)intgetPrice(){}D)publicintgetPrice(){return10;}14.以下对抽象类的描述正确的是(C)A)抽象类没有构造方法B)抽象类必须提供抽象方法C)有抽象方法的类一定是抽象类D)抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A)接口没有提供构造方法B)接口中的方法默认使用public、abstract修饰C)接口中的属性默认使用public、static、final修饰D)接口不允许多继承16.以下代码,描述正确的有(A)interfaceIDemo{publicstaticfinalStringname;1voidprint();2publicvoidgetInfo();3}abstractclassPersonimplementsIDemo{4publicvoidprint(){}}A)第1行错误,没有给变量赋值B)第2行错误,方法没有修饰符C)第4行错误,没有实现接口的全部方法D)第3行错误,没有方法的实现17.接口和抽象类描述正确的有(B,C)(两项)A)抽象类没有构造函数B)接口没有构造函数C)抽象类不允许多继承D)接口中的方法可以有方法体18.以下描述错误的有(C)A)abstract可以修饰类、接口、方法B)abstract修饰的类主要用于被继承C)abstract可以修饰变量D)abstract修饰的类,其子类也可以是abstract修饰的19.以下描述正确的有(B)A)方法的重写应用在一个类的内部B)方法的重载与返回值类型无关C)构造方法不能重载D)构造方法可以重写20.以下程序运行结果是(A)publicclassTestextendsFather{privateStringname=”test”;publicstaticvoidmain(String[]args){Testtest=newTest();System.out.println(test.getName());}}classFather{privateStringname=”father”;publicStringgetName(){returnname;}}A)fatherB)testC)编译出错D)运行出错,无输出21.以下对异常的描述不正确的有(C)A)异常分为Error和ExceptionB)Throwable是所有异常类的父类C)Exception是所有异常类父类D)Exception包括RuntimeException和RuntimeException之外的异常22.在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A)catchB)tryC)throwsD)throw23.下面代码运行结果是(B)publicclassDemo{publicintadd(inta,intb){try{returna+b;}catch(Exceptione){System.out.println(“catch语句块”);}finally{System.out.println(“finally语句块”);}return0;}publicstaticvoidmain(String[]args){Demodemo=newDemo();System.out.println(“和是:”+demo.add(9,34));}}A)编译异常B)finally语句块和是:43C)和是:43finally语句块D)catch语句块和是:4324.以下描述不正确的有(D)A)try块不可以省略B)可以使用多重catch块C)finally块可以省略D)catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A)自定义异常必须继承ExceptionB)自定义异常可以继承自ErrorC)自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D)程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)publicclassTest{publicintdiv(inta,intb){try{returna/b;}catch(Exceptione){System.out.println(“Exception”);}catch(NullPointerExceptione){System.out.println(“ArithmeticException”);}catch(ArithmeticExceptione){System.out.println(“ArithmeticException”);}finally{System.out.println(“finally”);}return0;}publicstaticvoidmain(String[]args){Testdemo=newTest();System.out.println(“商是:”+demo.div(9,0));}}A)Exceptionfinally商是:0B)ArithmeticExceptionfinally商是:0C)finally商是:0D)编译报错27.以下对TCP和UDP描述正确的是(D)A)TCP不能提供数据的可靠性B)UDP能够保证数据库的可靠性C)TCP数据传输效率高于UDPD)UDP数据传输效率高于TCP28.在Java中,下面对于构造函数的描述正确的是(D)。(选择一项)A)类必须显
本文标题:java练习题-继承
链接地址:https://www.777doc.com/doc-1883468 .html