java练习题_继承
Java程序设计(继承与多态)期末单元测试与答案
一、单选题1、Java语言中,所创建的子类都应有一个()。
A.派生类B.子类C.抽象类D.父类正确答案:D2、如果子类构造器中没有super()出现,那么编译器则会默认加上()构造器。
A.super()B.superC.thisD.this()正确答案:A3、Java中构造方法super()的使用,下列不正确的是()。
A.直接引用B.调用子类的构造函数C.引用父类成员D.调用父类的构造函数正确答案:B4、下列说法不正确的是()。
A.在同一个类中定义的重载方法可以互相调用B.构造方法允许重载C.子类无条件的调用父类无参构造方法D.子类不允许调用父类的构造方法正确答案:D5、代码如下:Employee man = new Manager(); man.test();上述代码是()的实现。
A.方法调用B.方法重写C.对象引用D.方法重载正确答案:A6、对成员的访问控制保护最强的是()。
A.缺省B.privateC.publicD.protected正确答案:B7、下列对封装性的描述中,错误的是()。
A.封装体中的属性和行为的访问权限是相同的B.封装使得抽象的数据类型提高了可重用性C.封装体包含了属性和行为D.被封装的某些信息在封装体外是不可见的正确答案:A8、在类的修饰符中,规定只能被同一包类所使用的修饰符是()。
A.abstractB.finalC.publicD.默认正确答案:D9、在Java语言中,类方法(静态方法)可以被继承,但是不能被()。
A.重载B.继承C.重写D.重构正确答案:C10、Java中,哪种是不可以用来限制存取权限的关键字()。
A.extendsB.protectedC.publicD.private正确答案:A11、不允许作为类及类成员的访问控制符的是()。
A.protectedB.staticC.privateD.public正确答案:B12、在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 慕课答案
⼀、单选题(共 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继承的练习题,以帮助读者加深对继承的理解和应用。
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复习习题(继承)类的继承习题一、选择题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)。
继承练习题
继承练习题一、选择题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.下⾯这段代码的输出结果是什么?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继承的理解和应用。
练习题一:动物类和子类我们先定义一个动物类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()用于计算形状的面积。
java中继承关系笔试题
1.在Java中,子类可以继承父类的哪些特性?
答:子类可以继承父类的所有非私有属性和方法,包括公有、受保护和默认访问级别。
此外,子类还可以继承父类的构造函数和初始化块。
2.如果一个子类要继承父类的方法,应该如何实现?
答:子类要继承父类的方法,可以使用与父类方法同名、相同参数列表和相同返回类型的方法。
如果子类想要重写父类的方法,可以使用@Override注解来标记。
3.什么是多态性?在Java中如何实现多态性?
答:多态性是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。
在Java中,多态性可以通过继承和接口实现。
子类可以继承父类的属性和方法,也可以实现接口的规范,从而让一个对象在不同上下文中表现出不同的行为。
4.如果一个子类要继承父类的构造函数,应该如何实现?
答:如果一个子类要继承父类的构造函数,可以在子类的构造函数中通过super关键字调用父类的构造函数。
如果子类没有显式地定义构造函数,则会自动调用父类的无参构造函数。
5.什么是抽象类?在Java中如何定义抽象类?
答:抽象类是一个不能被实例化的类,它只能作为其他类的基类。
抽象类可以包含抽象方法和非抽象方法。
在Java中,使用abstract关键字来定义抽象类,抽象类不能被实例化,但可以被继承。
如果一个子类继承了一个抽象类,那么它必须实现该抽象类中的所有抽象方法。
java面向对象继承例题
java面向对象继承例题下面是一个简单的Java面向对象继承的例题:```java//父类class Animal{private String name;public Animal(String name){=name;}public void eat(){System.out.println(name+"is eating.");}}//子类class Dog extends Animal{private String breed;public Dog(String name,String breed){ super(name);this.breed=breed;}public void bark(){System.out.println(getName()+"is barking.");}}//测试类public class Main{public static void main(String[]args){Dog myDog=new Dog("Tom","Labrador");myDog.eat();//调用父类的eat方法myDog.bark();//调用子类的bark方法}}```在上面的代码中,我们定义了一个Animal类作为父类,它有一个私有成员变量name和一个公共方法eat()。
然后我们定义了一个Dog类作为子类,它继承了Animal类并添加了一个私有成员变量breed和一个公共方法bark()。
在子类的构造函数中,我们通过super关键字调用了父类的构造函数来初始化name成员变量。
在测试类中,我们创建了一个Dog对象并调用了它的eat()和bark()方法。
由于子类继承了父类的方法,因此我们可以直接调用父类的方法而不需要显式地继承它。
JV复习题继承
类的继承习题一、选择题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)。
继承——精选推荐
第5章继承一、选择题1. Java语言的类间的继承关系是( )。
A) 多重的B) 单重的C) 线程的D) 不能继承2. 以下关于Java语言继承的说法正确的是( )。
A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3. 现有两个类A、B,以下描述中表示B继承自A的是()。
A) class A extends B B) class B implements AC) class A implements B D) class B extends A4. 下列选项中,用于定义接口的关键字是( )。
A)interface B) implements C) abstract D) class5. 下列选项中,用于实现接口的关键字是( B)。
A)interface B) implements C) abstract D) class二、填空题1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。
2. 属性的隐藏是指子类重新定义从父类继承来的__________。
3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
4. Java 仅支持类间的____重继承。
5. 抽象方法只有方法头,没有________。
6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。
三、程序阅读题1.现有类说明如下,请回答问题:public class A{String str1=" Hello! \t";String str2=" How are you? ";public String toString( ){ return str1+str2; }}public class B extends A{String str1="\b\b,Bill.";public String toString( ){ return super.str1+str1; }}问题:1)类A和类B是什么关系?2)类A和类B都定义了str1属性和方法toString( ),这种现象分别称为什么?3)若a是类A的对象,则a.toString( )的返回值是什么?4)若b是类B的对象,则b.toString( )的返回值是什么?2.现有一个类定义如下,请回答问题:class Employee{String name;int age;double wage;static int No=0;Employee(String a1,int a2,double a3){name=a1; age=a2; wage=a3;No++;}}在使用该类时,已使用下面语句生成了该类的对象:Employee e1,e2;e1=new Employee("王劲",26,6300);e2=new Employee("张山",30,3800);问题:1),e2.age,e2.wage的值各是什么?2)生成对象e1、e2后,e1.No值为多少?能否通过类名做前缀引用属性No?3.阅读程序,回答问题。
JAVA继承,接口,抽象类等练习
一、选择题1、为了区分重载多态中同名的不同方法,要求(A )。
A) 采用不同的参数列表B) 返回值类型不同C) 调用时用类名或对象名做前缀D) 参数名不同2、定义主类的类头时可以使用的访问控制符是( C)。
A) private B) protected C) public D) private protected3、下列整型的常量属性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 的构造函数中正确的是( )。
A) x( int m){ ... } B) void x( int m){ ... }C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... }8、下列类头定义中,正确的是( )。
CA) class x B) public x extends y{ .... } { .... }C) public class x extends y D) class x extends y implements y1{ .... } { .... }9、下面是有关子类继承父类构造函数的描述,其中正确的是(C )。
Java继承练习题
Java继承练习题第⼀题建⽴⼀个汽车Auto类,包括轮胎个数,汽车颜⾊,车⾝重量、速度等成员变量。
并通过不同的构造⽅法创建实例。
⾄少要求:汽车能够加速,减速,停车。
再定义⼀个⼩汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的⽅法第⼆题写⼀个Person类,有编号id,姓名name,职位job。
构造⽅法带三个参数。
⽅法:登陆login注册register⾃我介绍talk写⼀个学⽣Student类继承Person类,⽅法有:考试test属性有:学费money写⼀个⽼师Teacher类继承Person类,属性有⼯资salary⽅法有:⼯作work写⼀个测试类TestPerson,测试学⽣和⽼师学⽣:姓名-张三职位-学⽣学费-18000⽼师:姓名-李四职位-⽼师⼯资-8000注册、登陆输出就可以,⾃我介绍输出属性第三题定义⼀个⽗类:形状类Shapes,⾥⾯有两个⽅法,分别是求⾯积和周长。
定义⼀个⼦类:矩形Rectangle定义⼀个⼦类:三⾓形 Triagle定义⼀个⼦类:圆 Circle定义⼀个测试类:传⼊圆的半径4 输出周长和⾯积传⼊矩形的长和宽4,5 输出周长和⾯积传⼊三⾓形三边:3,4,5 输出周长和⾯积第⼀题:package homework;public class Auto {protected int gears;protected String color;protected double weight;protected double speed;public Auto() {this.gears=4;this.color="黄⾊";this.weight=200;this.speed=50;}public Auto(int gears, String color, double weight, double speed) {super();this.gears = gears;this.color = color;this.weight = weight;this.speed = speed;}public void speedUp(){speed+=5;System.out.println("加速⾄"+speed);}public void speedDown(){speed-=5;System.out.println("减速⾄"+speed);}public void stop(){speed=0;System.out.println("汽车停⽌,速度是"+speed);}}package homework;public class Car extends Auto{protected String kongtiao;protected String CD;public Car() {super();kongtiao="品牌1空调";CD="CD1";}public Car(int gears, String color, double weight, double speed,String kongtiao, String cD) {super(gears, color, weight, speed);this.kongtiao = kongtiao;CD = cD;}@Overridepublic void speedUp(){super.speed+=10;System.out.println("加速⾄"+speed);}@Overridepublic void speedDown() {speed-=10;System.out.println("减速⾄"+speed);}public void information(){System.out.println("当前是"+color+"的"+gears+"轮"+color+"的重"+weight+"的配有"+kongtiao+"和"+CD+"的车⼦,当前时速为"+speed); }}package homework;public class TestAuto {public static void main(String[] args) {Car car=new Car();rmation();car.speedDown();car.speedUp();car.stop();System.out.println();Car car2=new Car(3, "⽩⾊", 300, 70,"品牌2空调", "CD2");rmation();car2.speedDown();car2.speedUp();car.stop();}}第⼆题:package homework;public class Person {protected int id;protected String name;protected String job;public Person(int id, String name, String job) {this.id = id; = name;this.job = job;}public void login(){System.out.println("登陆成功");}public void register(){System.out.println("注册成功");}public void talk(){System.out.println("⼤家好!我是"+name+",编号是"+id+",职位是"+job); }}package homework;public class Student extends Person {protected double money;public Student(int id, String name, String job, double money) {super(id, name, job);this.money = money;}public void test(){System.out.println("我在考试");}public void information(){System.out.println("姓名-"+name+"\t职位-"+job+"\t学费"+money);}}package homework;public class Teacher extends Person{protected double salary;public Teacher(int id, String name, String job, double salary) {super(id, name, job);this.salary = salary;}public void work(){System.out.println("我在⼯作");}public void information(){System.out.println("姓名-"+name+"\t职位-"+job+"\t⼯资"+salary);}}package homework;public class TestPerson {public static void main(String[] args) {Student stu=new Student(1, "张三", "学⽣", 18000); stu.login();stu.register();stu.talk();stu.test();rmation();System.out.println();Teacher tea=new Teacher(2, "张⽼师", "⽼师", 8000); tea.login();tea.register();tea.talk();rmation();}}第三题:package homework;public class Shapes {public void area(){System.out.println("求⾯积");}public void zhouChang(){System.out.println("求周长");}}package homework;public class Rectangle extends Shapes {private int chang;private int kuan;public Rectangle(int chang, int kuan) {super();this.chang = chang;this.kuan = kuan;}@Overridepublic void area() {System.out.println("长⽅形⾯积是"+chang*kuan);}@Overridepublic void zhouChang() {System.out.println("长⽅形周长是"+(chang+kuan)*2); }}package homework;public class Circle extends Shapes{private int a;public Circle(int a) {super();this.a = a;}@Overridepublic void area() {System.out.println("圆形⾯积是"+a*a*Math.PI);}@Overridepublic void zhouChang() {System.out.println("圆形周长是"+a*Math.PI*2);}}package homework;public class Triagle extends Shapes {private int a;private int b;private int c;public Triagle(int a, int b, int c) {super();this.a = a;this.b = b;this.c = c;}public void area() {System.out.println("三⾓形⾯积是"+Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4); }@Overridepublic void zhouChang() {System.out.println("三⾓形周长是"+(a+b+c));}}package homework;public class TestShapes {public static void main(String[] args) {Circle circle=new Circle(1);circle.area();circle.zhouChang();Rectangle rectangle=new Rectangle(2, 3);rectangle.area();rectangle.zhouChang();Triagle triagle=new Triagle(3, 4, 5);triagle.area();triagle.zhouChang();}}。
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基础第章继承与多态练习题
第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编程中,继承是一个重要的概念。
继承允许我们定义一个类,然后创建另一个类从已有的类中派生出来。
这样可以提高代码的可重用性,并且可以更容易地组织和管理代码。
下面是一个简单的Java编程题,演示了如何使用继承:题目:创建一个Animal类和一个Dog类,Dog类继承自Animal类。
```java// Animal类public class Animal {private String name;public Animal(String name) { = name;}public void eat() {System.out.println(name + " is eating.");}public void sleep() {System.out.println(name + " is sleeping.");}}// Dog类public class Dog extends Animal {private String breed;public Dog(String name, String breed) {super(name); // 调用父类的构造函数this.breed = breed;}public void bark() {System.out.println(getName() + " is barking."); }public String getBreed() {return breed;}}```在这个例子中,Animal类有一个name属性和两个方法:eat()和sleep()。
Dog类继承了Animal类,并添加了一个breed属性和一个bark()方法。
在Dog类的构造函数中,我们通过super关键字调用了父类Animal的构造函数,以便设置name属性。
在Dog类的方法中,我们可以访问和操作从Animal类继承来的属性和方法。
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(String n,char s)子类Worker继承自Employee 属性:char category;//类别boolean dressAllowance;//是否提供服装津贴,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll()这个方法负责通过判断dressAllowance的值输出,是否提供服装津贴。
java封装继承多态选择题附加答案解析
java封装继承多态选择题附加答案解析1. 封装的主要目的是:A. 增加代码的长度B. 隐藏实现细节C. 使所有方法都公有D. 提高程序运行速度答案: B。
解析:封装是面向对象编程的重要原则,通过将数据和方法封装在类中,隐藏内部实现细节,提高代码的可维护性和安全性。
2. 在以下选项中,哪一种方法用于实现封装?A. 使用`public`关键字定义所有成员B. 使用`private`关键字隐藏类的实现细节C. 使用`static`关键字定义所有成员D. 使用`final`关键字定义所有成员答案: B。
解析:封装是通过使用`private`关键字将类的实现细节隐藏起来,并提供公共的访问方法(getter和setter)来访问这些私有成员。
3. 在Java中,如果类B继承自类A,则下列哪个选项是正确的?A. 类B是类A的超类B. 类A是类B的子类C. 类A是类B的超类D. 类B不能有自己的方法答案: C。
解析:类A是类B的超类,类B是类A的子类。
子类可以有自己的方法和属性。
4. 在以下哪个情况下,一个方法被认为是重写了另一个方法?A. 当方法具有相同的名称但不同的参数列表时B. 当方法在子类中重新实现且具有相同的名称、返回类型和参数列表时C. 当方法在同一个类中被定义了两次时D. 当方法在类中没有定义时答案: B。
解析:方法重写发生在子类中,要求被重写的方法在子类中具有相同的方法名、返回类型和参数列表。
5. 在以下访问修饰符中,哪个是最具限制性的?A. publicB. protectedC. default(无修饰符)D. private答案: D。
解析:`private`是最具限制性的访问修饰符,只有在同一个类中可以访问。
6. 以下哪个场景中体现了多态性?A. 一个方法有多个重载版本B. 一个类有多个构造方法C. 一个子类可以使用父类的属性和方法D. 父类的引用指向子类的对象答案: D。
解析:多态性允许父类的引用指向子类的对象,实际调用的方法取决于对象的运行时类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;//类别boolean dressAllowance; //是否提供服装津贴,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll() 这个方法负责通过判断dressAllowance的值输出,是否提供服装津贴。
新建一个类测试类InheDemo
在main方法中新建一个Worker对象,输出这个对象的所有属性并调用isDressAll()方法得到津贴信息。