java继承练习题

合集下载

继承练习题

继承练习题

继承练习题一、选择题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中继承关系笔试题

1.在Java中,子类可以继承父类的哪些特性?
答:子类可以继承父类的所有非私有属性和方法,包括公有、受保护和默认访问级别。

此外,子类还可以继承父类的构造函数和初始化块。

2.如果一个子类要继承父类的方法,应该如何实现?
答:子类要继承父类的方法,可以使用与父类方法同名、相同参数列表和相同返回类型的方法。

如果子类想要重写父类的方法,可以使用@Override注解来标记。

3.什么是多态性?在Java中如何实现多态性?
答:多态性是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。

在Java中,多态性可以通过继承和接口实现。

子类可以继承父类的属性和方法,也可以实现接口的规范,从而让一个对象在不同上下文中表现出不同的行为。

4.如果一个子类要继承父类的构造函数,应该如何实现?
答:如果一个子类要继承父类的构造函数,可以在子类的构造函数中通过super关键字调用父类的构造函数。

如果子类没有显式地定义构造函数,则会自动调用父类的无参构造函数。

5.什么是抽象类?在Java中如何定义抽象类?
答:抽象类是一个不能被实例化的类,它只能作为其他类的基类。

抽象类可以包含抽象方法和非抽象方法。

在Java中,使用abstract关键字来定义抽象类,抽象类不能被实例化,但可以被继承。

如果一个子类继承了一个抽象类,那么它必须实现该抽象类中的所有抽象方法。

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.publicintmax(intn,int k) C.publicintmax(intx,int y, int z) D.public double max(double n,double k) 3)为了区分类中重载的同名的不同方法,要求A.参数列表不同B.调用时用类名或对象名做前缀C.参数名不同D.返回值类型不同4)某个类中存在一个方法:void getSort(int x),以下能作为该方法的重载的声明的是?A.publicgetSort(float x) B.doublegetSort(intx,int y) C.int getSort(int y) D.voidget(intx,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; // 入学总分入学总分} intgetScore() { return score; } } 的关系是?则类Person和类Student的关系是?} A.包含关系包含关系B.继承关系C.关联关系关联关系D.上述类定义有语法错误上述类定义有语法错误7)下列叙述中,正确的是? A.子类继承父类的所有属性和方法子类继承父类的所有属性和方法B.子类可以继承父类的私有的属性和方法子类可以继承父类的私有的属性和方法C.子类可以继承父类的公有的属性和方法D.创建子类对象时,父类的构造方法都要被执行创建子类对象时,父类的构造方法都要被执行8)现有两个类A、B,以下描述中表示B继承自A的是? A.class A extends B B.class B implements A C.classA implements B D.classB extends A 9)下列叙述中错误的是?下列叙述中错误的是?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的包,下面的语句正确的是的包,下面的语句正确的是D.package "p"; A.packagePkg;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.voidgetAge(int age) B.int getAge(int age) C.voidsetAge(int age) D.int setAge() 15)下列关于访问器方法说法正确的是?下列关于访问器方法说法正确的是?A.get方法可以读取属性的值B.set方法用来读取属性的值方法用来读取属性的值C.必须为每个private属性提供访问器方法属性提供访问器方法D.public属性不能有访问器方法属性不能有访问器方法16)表示数据或方法可以只能被定义它的类访问的是表示数据或方法可以只能被定义它的类访问的是A.public B.默认的默认的C.private D.protected 17)表示数据或方法只能被其它包中的子类访问的是表示数据或方法只能被其它包中的子类访问的是A.public B.默认的默认的C.private D.protected 18)对于子类的构造函数说明,下列叙述中不正确的是对于子类的构造函数说明,下列叙述中不正确的是 ? A.子类无条件地继承父类的无参构造函数子类无条件地继承父类的无参构造函数B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句个调用语句必须是子类构造函数的第一个可执行语句C.在创建子类的对象时,在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造将先执行继承自父类的无参构造函数,然后再执行自己的构造函数函数D.子类不但可以自动执行父类的无参构造函数,也可以自动执行父类的有参构造函数19)当你编译运行下列程序代码,会得到什么结果? private class Base{ Base(){ int i = 100; System.out.println(i); } } public class Pri extends Base{ sta cint i = 200; public sta c void main(String argv[]){ Pri p = new Pri(); System.out.println(i); } } A.这段代码不能通过编译B.输出200 C.输出100和200 D.输出100 (二)简答题1)简述修饰类的可见性修饰符有哪些及其作用?简述修饰类的可见性修饰符有哪些及其作用?2)简述修饰类的成员的可见性修饰符有哪些及其作用?简述修饰类的成员的可见性修饰符有哪些及其作用?3)导入包时可导入其他包中哪些类?如何导入包p中的全部可以使用的类,请写出语句?请写出语句? 4)包的作用是什么?如何声明一个包?包的作用是什么?如何声明一个包?5)写出set和get方法定义的格式。

va练习题继承

va练习题继承

一.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;//类别boolean dressAllowance; //是否提供服装津贴,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll() 这个方法负责通过判断dressAllowance的值输出,是否提供服装津贴。

java 继承练习题

java 继承练习题

java 继承练习题Java继承练习题Java的继承是一种重要的面向对象编程概念,通过继承可以实现代码的重用和扩展性。

在这篇文章中,我将为您提供一些Java继承的练习题,帮助您加深对于继承的理解并提升编程技巧。

题目一:创建一个父类Animal,包含属性name和age,并定义一个方法showInfo用于展示动物的信息。

创建子类Dog和Cat并重写showInfo方法,分别展示狗和猫的信息。

题目二:创建一个父类Shape,包含属性color和area,并定义一个计算面积的抽象方法calculateArea。

创建子类Circle和Rectangle,并实现calculateArea方法,分别计算圆和矩形的面积。

题目三:创建一个父类Employee,包含属性name和salary,并定义一个方法getAnnualSalary用于计算员工的年薪。

创建子类Manager 和Staff,其中Manager类有一个bonus属性用于表示经理的奖金,Staff类没有额外的属性,分别实现getAnnualSalary方法。

题目四:创建一个父类Vehicle,包含属性brand和price,并定义一个方法showInfo用于展示交通工具的信息。

创建子类Car和Bike,分别实现showInfo方法,在方法中增加信息的格式化输出。

题目五:创建一个父类Phone,包含属性brand和price,并定义一个抽象方法sendMessage。

创建子类Android和IOS,分别实现sendMessage方法,输出不同系统的短信。

以上是几个Java继承的练习题,接下来我将给出每个题目的解答及相应的代码示例。

题目一解答:```javaclass Animal {protected String name;protected int age;public Animal(String name, int age) { = name;this.age = age;}public void showInfo() {System.out.println("Name: " + name + ", Age: " + age);}}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}@Overridepublic void showInfo() {System.out.println("Dog - Name: " + name + ", Age: " + age); }}class Cat extends Animal {public Cat(String name, int age) {super(name, age);}@Overridepublic void showInfo() {System.out.println("Cat - Name: " + name + ", Age: " + age); }}public class Main {public static void main(String[] args) {Animal animal1 = new Dog("Tom", 3);Animal animal2 = new Cat("Jerry", 4);animal1.showInfo(); // 输出:Dog - Name: Tom, Age: 3animal2.showInfo(); // 输出:Cat - Name: Jerry, Age: 4 }}```题目二解答:```javaabstract class Shape {protected String color;protected double area;public Shape(String color) {this.color = color;}public abstract void calculateArea();public void showInfo() {System.out.println("Color: " + color + ", Area: " + area); }}class Circle extends Shape {private double radius;public Circle(String color, double radius) {super(color);this.radius = radius;}@Overridepublic void calculateArea() {area = Math.PI * radius * radius;}}class Rectangle extends Shape {private double width;private double height;public Rectangle(String color, double width, double height) { super(color);this.width = width;this.height = height;}@Overridepublic void calculateArea() {area = width * height;}}public class Main {public static void main(String[] args) {Shape shape1 = new Circle("Red", 2.5);Shape shape2 = new Rectangle("Blue", 3.0, 4.0);shape1.calculateArea();shape1.showInfo(); // 输出:Color: Red, Area: 19.634954084936208shape2.calculateArea();shape2.showInfo(); // 输出:Color: Blue, Area: 12.0 }}```题目三解答:```javaclass Employee {protected String name;protected double salary;public Employee(String name, double salary) { = name;this.salary = salary;}public double getAnnualSalary() {return salary * 12;}}class Manager extends Employee {private double bonus;public Manager(String name, double salary, double bonus) { super(name, salary);this.bonus = bonus;}@Overridepublic double getAnnualSalary() {return salary * 12 + bonus;}}class Staff extends Employee {public Staff(String name, double salary) {super(name, salary);}}public class Main {public static void main(String[] args) {Employee employee1 = new Manager("John", 5000, 2000);Employee employee2 = new Staff("Alice", 3000);System.out.println("Employee1 Annual Salary: " + employee1.getAnnualSalary()); // 输出:Employee1 Annual Salary: 62000.0System.out.println("Employee2 Annual Salary: " + employee2.getAnnualSalary()); // 输出:Employee2 Annual Salary: 36000.0}}```题目四解答:```javaclass Vehicle {protected String brand;protected double price;public Vehicle(String brand, double price) {this.brand = brand;this.price = price;}public void showInfo() {System.out.println("Brand: " + brand + ", Price: " + price);}}class Car extends Vehicle {public Car(String brand, double price) {super(brand, price);}@Overridepublic void showInfo() {System.out.printf("Car - Brand: %s, Price: %.2f\n", brand, price);}}class Bike extends Vehicle {public Bike(String brand, double price) {super(brand, price);}@Overridepublic void showInfo() {System.out.printf("Bike - Brand: %s, Price: %.2f\n", brand, price);}}public class Main {public static void main(String[] args) {Vehicle vehicle1 = new Car("Toyota", 25000);Vehicle vehicle2 = new Bike("Yamaha", 1500);vehicle1.showInfo(); // 输出:Car - Brand: Toyota, Price: 25000.00 vehicle2.showInfo(); // 输出:Bike - Brand: Yamaha, Price: 1500.00}}```题目五解答:```javaabstract class Phone {protected String brand;protected double price;public Phone(String brand, double price) { this.brand = brand;this.price = price;}public abstract void sendMessage();}class Android extends Phone {public Android(String brand, double price) { super(brand, price);}@Overridepublic void sendMessage() {System.out.println("Android Phone - Brand: " + brand + ", Price: " + price);}}class IOS extends Phone {public IOS(String brand, double price) {super(brand, price);}@Overridepublic void sendMessage() {System.out.println("iOS Phone - Brand: " + brand + ", Price: " + price);}}public class Main {public static void main(String[] args) {Phone phone1 = new Android("Samsung", 1000);Phone phone2 = new IOS("iPhone", 1500);phone1.sendMessage(); // 输出:Android Phone - Brand: Samsung, Price: 1000.0phone2.sendMessage(); // 输出:iOS Phone - Brand: iPhone, Price: 1500.0}}```通过完成以上继承练习题,您可以对Java继承的概念和用法有更深入的理解,并巩固自己的编程能力。

java 继承练习题

java 继承练习题

java 继承练习题Java 继承练习题Java 是一种面向对象的编程语言,继承是其核心概念之一。

通过继承,我们可以创建新的类,并从现有的类中继承属性和方法。

继承不仅提高了代码的可重用性,还使得代码更加易于维护和扩展。

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

1. 创建一个 Animal 类,具有属性 name 和 age,以及方法 eat() 和 sleep()。

然后创建一个 Dog 类,继承自 Animal 类,并添加一个方法 bark()。

最后创建一个 Cat 类,也继承自 Animal 类,并添加一个方法 meow()。

在主函数中创建一个 Dog 对象和一个 Cat 对象,并调用它们的方法。

2. 创建一个 Shape 类,具有属性 color 和 filled,以及方法 getArea() 和getPerimeter()。

然后创建一个 Circle 类,继承自 Shape 类,并添加一个属性radius,以及重写的方法 getArea() 和 getPerimeter()。

最后创建一个 Rectangle 类,也继承自 Shape 类,并添加属性 width 和 height,以及重写的方法getArea() 和 getPerimeter()。

在主函数中创建一个 Circle 对象和一个 Rectangle 对象,并调用它们的方法。

3. 创建一个 Person 类,具有属性 name 和 age,以及方法 eat() 和 sleep()。

然后创建一个 Student 类,继承自 Person 类,并添加属性 grade,以及重写的方法 eat() 和 sleep()。

最后创建一个 Teacher 类,也继承自 Person 类,并添加属性 subject,以及重写的方法 eat() 和 sleep()。

在主函数中创建一个 Student 对象和一个 Teacher 对象,并调用它们的方法。

JAVA基础第章继承与多态练习题

JAVA基础第章继承与多态练习题

第4章继承与多态一.选择题1. 编译和运行以下两文件结果是( D )。

//文件P1.javapackage MyPackage;class P1{void afancymethod(){System.out.println("What a fancy method");}}//文件P2.javapackage YourPackage;import MyPackage.*;public class P2 extends P1{public static void main(String argv[]){P2 p2 = new P2();p2.afancymethod();}}A.两个均通过编译,P2运行时输出What a fancy methodB.没一个通过编译C.两个均通过编译,但P2运行时出错D.P1 通过编译,但P2出现编译错误2.下列程序运行的结果是(A )。

package a;package b;public class D{public static void main(String args[]) {System.out.println("^_^,今天心情不错!");}}A.出现编译错误B.^_^,今天心情不错!C.通过编译,运行时出错D.以上都不对3.Java的核心类库中哪个包,Java系统能自动引入(B )。

A.java.io B.ngC. D.java.util4.下列程序运行结果是( A )。

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.200 C.100 200 D.1005.下列程序运行结果是(C )。

JAVA基础第章继承与多态练习题

JAVA基础第章继承与多态练习题

第4章继承与多态一.选择题1. 编译和运行以下两文件结果是( D )。

//文件P1.javapackage MyPackage;class P1{void afancymethod(){System.out.println("What a fancy method");}}//文件P2.javapackage YourPackage;import MyPackage.*;public class P2 extends P1{public static void main(String argv[]){P2 p2 = new P2();p2.afancymethod();}}A.两个均通过编译,P2运行时输出What a fancy methodB.没一个通过编译C.两个均通过编译,但P2运行时出错D.P1 通过编译,但P2出现编译错误2.下列程序运行的结果是(A )。

package a;package b;public class D{public static void main(String args[]) {System.out.println("^_^,今天心情不错!");}}A.出现编译错误B.^_^,今天心情不错!C.通过编译,运行时出错D.以上都不对3.Java的核心类库中哪个包,Java系统能自动引入(B )。

A.java.io B.ngC. D.java.util4.下列程序运行结果是( A )。

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.200 C.100 200 D.1005.下列程序运行结果是(C )。

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

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()方法。

3. 方法重写练习题
假设有一个父类Shape,具有一个计算面积的方法calculateArea()。

定义两个子类,分别为Rectangle和Circle,继承自Shape类,并重写calculateArea()方法,以实现具体的面积计算逻辑。

请编写一个Java程序,创建一个Rectangle对象和一个Circle对象,并分别调用它们的calculateArea()方法。

4. 多层继承与super关键字练习题
假设有一个父类Animal,具有一个eat()方法。

定义一个子类Dog,继承自Animal类,并重写eat()方法。

再定义一个子类Pug,继承自
Dog类,并再次重写eat()方法。

请编写一个Java程序,创建一个Pug对象,并调用它的eat()方法。

在Pug类中,如何使用super关键字调用父类的eat()方法?
5. 继承与构造方法练习题
假设有一个父类Shape,具有一个构造方法和一个计算面积的方法calculateArea()。

定义一个子类Triangle,继承自Shape类,并添加一个
私有属性height(表示三角形的高)。

在Triangle类中重写父类的calculateArea()方法,以实现计算三角形面积的逻辑。

请编写一个Java程序,创建一个Triangle对象,并调用它的calculateArea()方法。

通过完成以上练习题,读者可以加深对Java继承的理解,掌握继承的基本概念、语法、方法重写、多层继承、super关键字以及与构造方法的结合应用。

希望读者能够通过实践掌握继承的核心思想和技巧,并能够灵活运用于实际的Java开发中。

相关文档
最新文档