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继承练习题
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()方法。
继承练习题
继承练习题一、选择题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中继承关系笔试题
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()方法。
由于子类继承了父类的方法,因此我们可以直接调用父类的方法而不需要显式地继承它。
java练习题-继承
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;法()可以调用父类的所有非私有方法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 T est();商是:” + (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)。
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练习题继承
一.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 继承的理解。
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基础第章继承与多态练习题
第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继承性练习题在Java编程中,继承是一种重要的概念,它允许一个类继承另一个类的属性和方法。
继承性的理解和应用对于编写高效、可维护的代码至关重要。
在本文中,我们将通过一些练习题来帮助加深对Java继承性的理解。
练习题一:动物类与子类首先,我们创建一个名为"Animal"的父类,它具有一个名为"eat"的方法,用于输出动物吃东西的行为。
```javaclass Animal {public void eat() {System.out.println("动物正在吃东西");}}```接下来,我们创建两个子类"Cat"和"Dog",它们继承自"Animal"类,并且分别重写了"eat"方法。
```javaclass Cat extends Animal {@Overridepublic void eat() {System.out.println("猫正在吃鱼");}class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗正在吃骨头");}}```在主函数中,我们创建了一个"Animal"类的实例,并调用其"eat"方法。
然后,我们创建了一个"Cat"类的实例和一个"Dog"类的实例,并分别调用它们的"eat"方法。
```javapublic class Main {public static void main(String[] args) {Animal animal = new Animal();animal.eat();Cat cat = new Cat();cat.eat();Dog dog = new Dog();dog.eat();}```运行上述代码,我们将会看到以下输出:```动物正在吃东西猫正在吃鱼狗正在吃骨头```通过这个练习题,我们可以看到子类继承了父类的方法,并且可以根据需要重写这些方法。
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。
解析:多态性允许父类的引用指向子类的对象,实际调用的方法取决于对象的运行时类型。
java封装继承多态作业题
下面是一个关于Java封装、继承和多态的作业题,可供学习和练习。
题目:学生管理系统
编写一个简单的Java程序,模拟一个学生管理系统。
系统应该包括以下类:
Student类:
属性:学生姓名、学号、年龄、成绩
方法:构造函数、获取学生信息的方法、设置学生信息的方法
Course类:
属性:课程名称、课程编号、授课老师
方法:构造函数、获取课程信息的方法、设置课程信息的方法
Teacher类:
属性:老师姓名、工号、教授课程
方法:构造函数、获取老师信息的方法、设置老师信息的方法
School类:
属性:学校名称、地址、联系电话
方法:构造函数、获取学校信息的方法、设置学校信息的方法
Main类:
创建几个学生对象、课程对象和老师对象,并分别设置它们的信息。
使用多态性质,创建一个列表或数组,存储不同的学生、课程和老师对象,然后通过循环遍历输出它们的信息。
要求:
使用封装的原则,将类的属性设置为私有,并提供公共的访问和修改方法。
使用继承的原则,确保子类可以继承父类的属性和方法。
使用多态的原则,通过父类的引用来操作子类对象。
这个作业题可以帮助学习者理解Java中的封装、继承和多态的概念,并将其应用到一个实际的项目中。
学生可以根据自己的理解和知识水平来扩展这个项目,添加更多的功能和类。
java组合和继承的选择题
java组合和继承的选择题
1. 当父类和子类拥有相同的方法名称和参数列表时,子类可以通过继承来覆写该方法。
2. 组合是一种关系强的结构,当一个类拥有另一个类的实例作为成员变量时,称为组合关系。
3. 继承可以实现代码的重用,避免了重复编写相同功能的代码。
4. 继承只能实现单一继承,即一个类只能继承一个父类。
5. 继承可以实现多态性,即同一个方法可以根据对象的不同调用不同的实现。
6. 组合可以实现更灵活的代码结构,可以根据需要选择组合的类。
7. 继承可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法。
8. 组合可以实现对象之间的关联,可以通过组合来描述现实生活中对象之间的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.e x t e n d s和s u p e r的使用和方法的重写
1.定义一个人的类(属性有名字,年龄。
写一个能输出各个属性值
的方法showInfo()),定义一个学生类(属性有性别),学生继承人类
要求:(1)父类的属性赋值用构造方法来实现(分别用有参数构
)。
提示:(a1(),a2(),b1(),c1()这些方法体除了实现题目要求之外,其余内容可以任意编写。
)
2、请编码实现动物世界的继承关系:
动物(Animal)具有行为:吃(eat)、睡觉(sleep)
动物包括:兔子(Rabbit),老虎(Tiger)
这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡
觉的行为是一致的。
请通过继承实现以上需求,并编写测试类AnimalTest进行测试。
3、父类Person 包含like()方法子类Son 重写父类方法并打印输出
答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。
他使用extends来继承。
接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。
其实现方式是interface来实现。