java练习题-继承

合集下载

java继承习题

java继承习题

(一)选择题1)若在某一个类定义中定义有如下的方法:final void workDial( )该方法属于A.本地方法B.最终方法C.静态方法D.抽象方法2)下面哪个方法与题目中的不是重载方法public int max(int x,int y)A.public double max(double x,double y)B.public int max(int n,int k)C.public int max(int x,int y, int z)D.public double max(double n,double k)3)为了区分类中重载的同名的不同方法,要求A.参数列表不同B.调用时用类名或对象名做前缀C.参数名不同D.返回值类型不同4)某个类中存在一个方法:void getSort(int x),以下能作为该方法的重载的声明的是?A.public getSort(float x)B.double getSort(int x,int y)C.int getSort(int y)D.void get(int x,int y)5)A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:A a0=new A();A a1 =new B();A a2=new C();问以下哪个说法是正确的?A.只有第1行能通过编译B.第1、2行能通过编译,但第3行编译出错C.第1、2、3行能通过编译,但第2、3行运行时出错D.第1行、第2行与第3行的声明都是正确的6)设有下面两个类的定义。

class Person {long id; // 身份证号String name; // 姓名class Student extends Person {int score; // 入学总分}int getScore() {return score;则类Person与类Student的关系是?A.包含关系B.继承关系C.关联关系D.上述类定义有语法错误7)下列叙述中,正确的是?A.子类继承父类的所有属性与方法B.子类可以继承父类的私有的属性与方法C.子类可以继承父类的公有的属性与方法D.创建子类对象时,父类的构造方法都要被执行8)现有两个类A、B,以下描述中表示B继承自A的是?A.class A extends BB.class B implements AC.class A implements BD.class B extends A9)下列叙述中错误的是?A.一个子类可有多个父类B.父类派生出子类C.子类继承父类D.子类只能有一个父类10)关于继承下面说法正确的是A.子类能够继承父类私有的属性;B.子类可以重写父类的final方法;C.子类能够继承不同包父类的protected属性;D.子类能够继承不同包父类的缺省属性;11)有名字为A的包与名为B的类,下面的语句正确的是A.package A.B;B.package B;C.import A.* ;D.import B;12)声明一个名字为P的包,下面的语句正确的是A.package Pkg;B.Package P;C.package P;D.package "p";13)导入包A中的类AA应该使用下面哪条语句?A.import A.AA ;B.import AA.A;C.package A;D.package AA;14)下列针对int类型的私有属性age的访问器方法格式正确的是?A.void getAge(int age)B.int getAge(int age)C.void setAge(int age)D.int setAge()15)下列关于访问器方法说法正确的是?A.get方法可以读取属性的值B.set方法用来读取属性的值C.必须为每个private属性提供访问器方法D.public属性不能有访问器方法16)表示数据或方法可以只能被定义它的类访问的是A.publicB.默认的C.privateD.protected17)表示数据或方法只能被其它包中的子类访问的是A.publicB.默认的C.privateD.protected18)对于子类的构造函数说明,下列叙述中不正确的是?A.子类无条件地继承父类的无参构造函数B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句C.在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数D.子类不但可以自动执行父类的无参构造函数,也可以自动执行父类的有参构造函数19)当你编译运行下列程序代码,会得到什么结果?private class Base{Base(){int i = 100;System.out.println(i);public class Pri extends Base{static int i = 200;public static void main(String argv[]){Pri p = new Pri();System.out.println(i);A.这段代码不能通过编译B.输出200C.输出100与200D.输出100(二)简答题1)简述修饰类的可见性修饰符有哪些及其作用?2)简述修饰类的成员的可见性修饰符有哪些及其作用?3)导入包时可导入其他包中哪些类?如何导入包p中的全部可以使用的类,请写出语句?4)包的作用是什么?如何声明一个包?5)写出set与get方法定义的格式。

Java程序设计 测验-4.1继承概念 深大优课UOOC 慕课答案

Java程序设计 测验-4.1继承概念  深大优课UOOC 慕课答案

⼀、单选题(共 60.00 分)⼆、判断题(共 40.00 分)Java 程序设计(深圳⼤学继续教育学院引进课程) 测验-4.1继承概念1. A.B.C.D.下列关于继承的哪项叙述是正确的_______。

在java 中允许多重继承在java 中⼀个类只能实现⼀个接⼝在java 中⼀个类不能同时继承⼀个类和实现⼀个接⼝java 的单⼀继承使代码更可靠正确答案:D2. A.B.C.D.给出下⾯代码: 1) class Parent { 2) private String name ; 3) public Parent (){} 4) } 5) public class Child extends Parent { 6) private String department ; 7) public Child () {} 8) public String getValue (){ return name ; } 9) public static void main (String arg[]) { 10) Parent p = new Parent (); 11) } 12) } 那些⾏将引起错误?第3⾏第6⾏第7⾏第8⾏正确答案:D3. A.B.C.D.设有下⾯两个类的定义:class Person {class Student extends Person{long id ; // 身份证号int score ; //⼊学总分String name ; // 姓名int getScore () { return score ; } }} 问:类Person 和类Student 的关系是( )。

包含关系继承关系(内部类继承了外部类)关联关系⽆关系,上述类定义有语法错误正确答案:B1构造⽅法不能被继承1.A.B.正确错误正确答案:A2. A.B.⼀个⼦类可以重新定义从⽗类那⾥继承来的同名⽅法,⽽且允许它们有不同的返回值类型。

java继承练习题

java继承练习题

java继承练习题Java中的继承是面向对象编程中的重要概念,它允许我们创建一个类(称为子类或派生类),继承另一个类(称为父类或基类)的属性和方法。

通过继承,子类可以利用父类的代码,从而实现代码的复用和扩展。

本文将介绍一些Java继承的练习题,以帮助读者加深对继承的理解和应用。

1. 继承基本概念题(1)什么是继承?为什么使用继承?(2)Java中如何定义一个继承关系?(3)继承的优缺点是什么?2. 继承的语法练习题假设有两个类:Person和Student。

Person类具有以下属性和方法:```public class Person {protected String name;protected int age;public Person(String name, int age) { = name;this.age = age;public void introduce() {System.out.println("My name is " + name + ", I am " + age + " years old.");}}```Student类继承自Person类,并具有自己的属性和方法:```public class Student extends Person {private String school;public Student(String name, int age, String school) {super(name, age);this.school = school;}public void study() {System.out.println("I am studying at " + school + ".");}}请编写一个Java程序,创建一个Student对象,并调用introduce()和study()方法。

JAVA复习习题(继承)

JAVA复习习题(继承)

JAVA复习习题(继承)类的继承习题一、选择题1. Java语言的类间的继承关系是( B )。

A) 多重的B) 单重的C) 线程的D) 不能继承2. 以下关于Java语言继承的说法正确的是( C )。

A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。

A) class A extends B B) class B implements AC) class A implements B D) class B extends A4. 下列选项中,用于定义接口的关键字是( A)。

A)interface B) implements C) abstract D) class5. 下列选项中,用于实现接口的关键字是( B)。

A)interface B) implements C) abstract D) class6. Java语言的类间的继承的关键字是( B )。

A) implements B) extends C) class D) public7. 以下关于Java语言继承的说法错误的是( A )。

A)Java中的类可以有多个直接父类B)抽象类可以有子类C)Java中的接口支持多继承D)最终类不可以作为其它类的父类8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。

A) class M extends N B) class N implements MC) class M implements N D) class N extends M9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。

A) class Aimplements B B) class B implements AC) class Aextends B D) class B extends A10. 下列选项中,定义抽象类的关键字是( C)。

继承java练习题

继承java练习题

继承java练习题继承是Java中重要的概念之一,它允许我们创建具有共同特征的类,并在其基础上构建更具体的子类。

通过继承,我们可以实现代码的重用,提高程序的灵活性和可维护性。

在本文中,我将通过一些继承的Java练习题来帮助读者更好地理解和应用这一概念。

首先,让我们考虑一个简单的例子。

假设我们有一个名为Animal的父类,它有一个名为eat()的方法,用于描述动物吃东西的行为。

现在,我们想要创建一个子类Dog,它继承自Animal类,并具有自己特有的行为,比如bark()。

我们可以通过以下代码来实现:```javaclass Animal {public void eat() {System.out.println("Animal is eating.");}}class Dog extends Animal {public void bark() {System.out.println("Dog is barking.");}}```在这个例子中,Dog类继承了Animal类的eat()方法,并添加了自己的bark()方法。

通过创建Dog类的对象,我们可以调用这些方法:```javaDog dog = new Dog();dog.eat(); // 输出 "Animal is eating."dog.bark(); // 输出 "Dog is barking."```这个例子展示了继承的基本用法。

子类可以继承父类的属性和方法,并且还可以添加自己特有的属性和方法。

这使得我们可以更好地组织和扩展代码。

接下来,让我们来考虑一个稍微复杂一些的继承问题。

假设我们要设计一个图形类,其中包括一个计算面积的方法。

我们可以创建一个名为Shape的父类,它有一个名为calculateArea()的方法。

然后,我们可以创建几个子类,比如Rectangle和Circle,它们分别继承自Shape类,并实现自己特有的计算面积的方法。

继承练习题

继承练习题

继承练习题一、选择题1. 关于Java中的继承说法正确的是:A. 子类可以继承父类的私有成员B. 子类可以继承父类的protected成员C. 子类可以继承父类的静态成员D. 子类不能继承父类的构造方法2. 在Java中,下列哪个关键字用于声明继承?A. extendsB. implementsC. interfaceD. class3. 如果一个类声明为final,那么它:A. 可以被继承B. 不能被继承C. 可以被实例化D. 不能被实例化4. 关于Java中的方法重写,下列说法正确的是:A. 重写的方法必须具有相同的返回类型B. 重写的方法可以有不同的访问权限C. 重写的方法可以抛出新的异常D. 重写的方法必须抛出与父类方法相同的异常5. 在Java中,下列哪个操作是不合法的?A. 子类覆盖父类的静态方法B. 子类覆盖父类的非静态方法C. 子类覆盖父类的私有方法D. 子类覆盖父类的protected方法二、填空题6. 在Java中,如果一个类没有明确指定继承哪个类,那么它默认继承______类。

7. 在Java中,使用______关键字可以实现对父类方法的重写。

8. 如果子类要调用父类的构造方法,可以使用______关键字。

9. 在Java中,子类可以______父类的成员变量和方法。

10. 在Java中,如果子类和父类都有相同的成员变量,那么在子类中访问这个变量时,默认访问的是______。

三、判断题11. 在Java中,一个类只能继承一个类,但可以实现多个接口。

()12. 子类可以继承父类的私有成员变量,但不能继承私有方法。

()13. 在Java中,子类必须显式调用父类的构造方法。

()14. 如果父类的构造方法有参数,那么子类的构造方法也必须有相同参数的构造方法。

()15. 在Java中,子类可以覆盖父类的静态方法。

()四、编程题16. 定义一个父类`Animal`,包含一个方法`makeSound()`。

java基础-继承-练习集锦

java基础-继承-练习集锦

java基础-继承-练习集锦1.下⾯这段代码的输出结果是什么?ublic class Test {public static void main(String[] args) {new Circle();}}class Draw {public Draw(String type) {System.out.println(type+" draw constructor");}}class Shape {private Draw draw = new Draw("shape");public Shape(){System.out.println("shape constructor");}}class Circle extends Shape {private Draw draw = new Draw("circle");public Circle() {System.out.println("circle constructor");}}这道题⽬主要考察的是类继承时构造器的调⽤顺序和初始化顺序。

要记住⼀点:⽗类的构造器调⽤以及初始化过程⼀定在⼦类的前⾯。

由于Circle类的⽗类是Shape类,所以Shape类先进⾏初始化,然后再执⾏Shape类的构造器。

接着才是对⼦类Circle进⾏初始化,最后执⾏Circle的构造器。

2.下⾯这段代码的输出结果是什么?public class Test {public static void main(String[] args) {Shape shape = new Circle();System.out.println();shape.printType();shape.printName();}}class Shape {public String name = "shape";public Shape(){System.out.println("shape constructor");}public void printType() {System.out.println("this is shape");}public static void printName() {System.out.println("shape");}}class Circle extends Shape {public String name = "circle";public Circle() {System.out.println("circle constructor");}public void printType() {System.out.println("this is circle");}public static void printName() {System.out.println("circle");}}这道题主要考察了隐藏和覆盖的区别覆盖只针对⾮静态⽅法(终态⽅法不能被继承,所以就存在覆盖⼀说了),⽽隐藏是针对成员变量和静态⽅法的。

java继承练习题

java继承练习题

java继承练习题Java继承练习题Java是一种面向对象的编程语言,其核心思想是将现实世界中的事物抽象为对象,并通过类的定义和实例化来描述和操作这些对象。

在Java中,继承是一种重要的机制,它允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展性。

在本文中,我们将通过一些练习题来巩固对Java继承的理解和应用。

练习题一:动物类和子类我们先定义一个动物类Animal,它具有属性name和age,并且有一个方法say()用于输出动物的叫声。

接下来,我们定义两个子类Dog和Cat,它们分别继承自Animal类,并且分别重写父类的say()方法。

其中,Dog类的say()方法输出"汪汪汪",Cat类的say()方法输出"喵喵喵"。

```javaclass Animal {protected String name;protected int age;public Animal(String name, int age) { = name;this.age = age;}public void say() {System.out.println("动物发出叫声");}}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}@Overridepublic void say() {System.out.println("汪汪汪");}}class Cat extends Animal {public Cat(String name, int age) {super(name, age);}@Overridepublic void say() {System.out.println("喵喵喵");}}public class AnimalTest {public static void main(String[] args) {Animal animal = new Animal("动物", 5);animal.say();Dog dog = new Dog("小狗", 2);dog.say();Cat cat = new Cat("小猫", 1);cat.say();}}```练习题二:形状类和子类接下来,我们定义一个形状类Shape,它具有一个抽象方法area()用于计算形状的面积。

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

一.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(String n, char s)子类Worker继承自Employee 属性:char category;法()可以调用父类的所有非私有方法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中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{}A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14.以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15.以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16.以下代码,描述正确的有(A)interface IDemo{public static final String name;1void print();2public void getInfo();3}abstract class Person implements IDemo{4public void print(){}}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)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();}}class Father{private String name=”father”;public String getName() {return name;}}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)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){语句块”);}finally{语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();和是:”+(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324.以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25.以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26.以下程序运行结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){}catch(NullPointerException e){}catch (ArithmeticException e) {} finally {}return 0;}public static void main(String[] args) {Test demo = new Test();商是:” + (9, 0));}}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。

(选择一项)A) 类必须显示定义构造函数B) 构造函数的返回类型是voidC) 构造函数和类有相同的名称,并且不能带任何参数D) 一个类可以定义多个构造函数29. 根据下面的代码,String s = null;会抛出NullPointerException异常的有(A,C)。

[两项]A) if( (s!=null) & ()>0) )B) if( (s!=null) & & ()>0) )C) if( (s==null) | ()==0) )D) if( (s==null) || ()==0) )30..在Java中,关于HashMap类的描述,以下廉洁错误的是( B )。

A) HashMap使用键/值得形式保存数据B) HashMap 能够保证其中元素的顺序C) HashMap允许将null用作键D) HashMap允许将null用作值31. 下列选项中关于java中super关键字的说法错误的是(B )A) super关键字是在子类对象内部指代其父类对象的引用B) super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C) 子类可以通过super关键字调用父类的方法D) 子类可以通过super关键字调用父类的属性32. 在Java中,以下代码( A )正确地创建了一个InputStreamReader对象。

A) InuptStreamReader(new FileInputStream(“”));B) InuptStreamReader(new FileReader(“”));C) InuptStreamReader(new BufferReader(“”));D) InuptStreamReader (“”);33. 在Java中,( D )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。

A) FileInputStreamB) FileReaderC) FileWriterD) File中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是(C)(选择一项)A) ArrayList和LinkedList均实现了List接口B) ArrayList的访问速度比LinkedList快C) 添加和删除元素时,ArrayList的表现更佳D) HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值35. 在Java中开发JDBC应用程序时,使用DriverManager类的getConnection()方法建立与数据源的连接语句为:Connection con = (“jdbc:odbc:news”);URL连接中的”n ews”表示的是(C)(选择一项)A) 数据库中表的名称B) 数据库服务器的机器名C) 数据源的名称D) 用户名36.在Java中,JDBCAPI定义了一组用于与数据库进行通信的接口和类,它们包括在(B)包中。

相关文档
最新文档