java练习题之继承(创建对象时属性先赋值输出再执行构造方法)

发布时间:2023年12月22日

?1:(继承)关于继承描述错误的是(B)

A. 继承体现的是类与类之间的"is-a"关系

B. 通过继承,子类可以直接访问父类中所有的属性和方法????私有的不可以访问

C. Java 中的继承是单继承的关系

D. 父类是子类共性的提取

2:(修饰符)下列关于访问修饰符访问权限描述错误的是(C)

  1. private :只能在本类中使用
  2. default :本类+同包
  3. protected :本类+同包+不同包 ???同包子类 ?不同包子类
  4. public: 本类+同包+不同包

3: (覆盖)下列关于方法覆盖描述错误的是(BD)

A. 子类中的方法名必须和父类中方法名相同

B. 子类中的方法参数列表和父类的不同??参数列表必须相同

C. 子类中的方法返回值类型和父类相同

D. 父类的方法访问修饰符和子类中的相同或是更宽????子类的相同或更宽

4:(继承)关于 Java 中的继承,以下说法正确的是(C)

A. 一个子类可以有多个直接的父类,一个父类也可以有多个直接的子类????子类只能有一个直接父类

B. 一个子类可以有多个直接的父类,但是一个父类只可以有一个直接的子类

C. 一个子类只能有一个直接的父类,但是一个父类可以有多个直接的子类

D. 以上说法都不对

5:(访问修饰符)仔细阅读以下代码,描述正确的是(C)

A. 编译通过

B. 编译不通过,应把第 11?行改成 super.valu?e = value;

C. 编译不通过,应把第 11?行改成 super(value);

D. 编译不通过,可以为 MySubClass 增加一个 value 属性

E. 编译不通过,把第 4 行改为 protected int value; 把第 11?行改为 super.value = value;

6:(重写)仔细阅读以下代码,写出代码执行的结果:

Super()

Sub()

Super()

Sub()

Sub(int)

Super(String)

Sub(String)

7:(super)仔细阅读以下代码,写出代码执行的结果。

m1() int sub

m1() int super

m2() int super

8:(super)仔细阅读以下程序,请问如何修改代码才能通过?

第二行加一个 ??String ?str;

9:(访问修饰符)仔细阅读以下代码,以下代码有哪些地方编译出错?假设不允许修改 MyClass 类,

那应该如何修改?

第一个System.out.println(mc1.getValue);

System.out.println(mc2.getValue);

第二个 改包名为:package corejava.Chp7;或者删除 MyClass mc2=new MyClass(10);

System.out.println(mc1.getValue);

System.out.println(mc2.getValue);

10:(覆盖)阅读以下代码,哪些代码写在//1 处,程序编译能通过(A)

  1. public int method(){return 0;}
  2. void method(){}
  3. void method(int n){}
  4. protected void method(){}

11:(对象创建过程)仔细阅读以下代码,写出代码的执行结果:

Meal()

Lunch()

Vategable()

Potato()

Meat()

Vategable()

Tomato();

Sandwish()

12:(重写)阅读以下代码,哪些代码写在//1 处,程序编译能通过(BD)

  1. public int method(){return 0;}
  2. void method(){}
  3. void method(int n){}
  4. private void method(){}

  5. 13:(继承+封装)编程:定义一个人类(Person),包括属性:姓名、性别、年龄、国籍;

包括的方法:吃饭、睡觉,工作

(1) 根据人类,定义一个学生类,增加属性:学校、学号;重写工作方法(实现内容为学习)

(2) 根据人类,定义一个工人类,增加属性:单位,工龄;重写工作方法

(3) 根据学生类,定义一个学生干部类(StudentLeader),增加属性:职务;增加方法:开会

(4) 定义一个测试类,分别创建上述 3 类具体人物的对象并将信息打印在控制台上。

package com.by.homework3;

public class Person {
????String name;
????String sex;
????int age;
????String nationality;
????public void eat(){
????????System.out.println("人的吃饭方法");
????}
????public void sleep(){
????????System.out.println("人的睡觉方法");
????}
????public void work(){
????????System.out.println("人的工作方法");
????}
}

package com.by.homework3;

public class Student extends Person{
????String school;
????String schoolNum;

????public Student() {
????}
????public void work(){
????????System.out.println("学生的学习方法");
????}
}

package com.by.homework3;

public class Worker extends Person{
????String depart;
????String seniority;
????public void work(){
????????System.out.println("工人的工作方法");
????}
}

package com.by.homework3;

public class StudentLead?extends Student?{
????String zhiwu;
????public void kaihui(){
????????System.out.println("学生的开会方法");
????}
}

Student student=new Student();
student.name="大黄";
student.age=19;
student.sex="男";
student.nationality="中国";
student.school="一中";
student.schoolNum="123";
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.sex);
System.out.println(student.nationality);
System.out.println(student.school);
System.out.println(student.schoolNum);
student.work();

Worker worker=new Worker();
worker.name="haha";
worker.age=18;
worker.sex="nan";
worker.nationality="CN";
worker.depart="show";
worker.seniority="6";
System.out.println(worker.name);
System.out.println(worker.age);
System.out.println(worker.sex);
System.out.println(worker.nationality);
System.out.println(worker.depart);
System.out.println(worker.seniority);
worker.work();

StudentLead studentLead=new StudentLead();
studentLead.name="";
studentLead.age=;
studentLead.sex="";
studentLead.nationality="";
studentLead.school="";
studentLead.schoolNum="";
studentLead.zhiwu="";
System.out.println(studentLead.name);
System.out.println(studentLead.age);
System.out.println(studentLead.sex);
System.out.println(studentLead.nationality);
System.out.println(studentLead.school);
System.out.println(studentLead.schoolNum);
System.out.println(studentLead.zhiwu);
studentLead.kaihui();

14:(继承+封装)编程:定义一个交通工具类(Vehicles),该类的属性为:商标(brand)、颜色(color);

功能方法为:run 方法(行驶功能,控制台输出“车已经启动”)、showInfo(显示信息,控制台输出商标和颜色)

(1) 编写一个小汽车类(Car)继承于 Vehicles 类,添加属性座位(seats);成员方法 showCar(显示小汽车的所有信息)

(2) 编写一个卡车类(Truck)继承于 Vehicles 类,添加属性载重(load);成员方法 showTruck(显示卡车的所有信息)

(3) 定义测试类,分别创建 Car 对象和 Truck 对象,控制台打印输出的信息如下:

商标:奔驰,颜色:白色,座位:5

商标:福田,颜色:红色,载重:6.5 吨

package com.by.homework3;

public class Vehicles {
????String brand;
????String color;
????public void run(){
????????System.out.println("车子已经启动");
????}
????public void showInfo(){
????????System.out.println(brand);
????????System.out.println(color);
????}

}

package com.by.homework3;

public class Car extends Vehicles{
????String seats;
????public void showCar(){
????????showInfo();
????????System.out.println(seats);
????}
}

package com.by.homework3;

public class Truck extends Vehicles {
????String load;
????public void showTruck(){
????????showInfo();
????????System.out.println(load);
????}
}

package com.by.homework3;

import com.by.Obj.Teacher;

public class TestCar {
????public static void main(String[]args){
????????Car car=new Car();
????????car.brand="奔驰";
????????car.color="白色";
????????car.seats="5";
????????System.out.println(car.brand+car.color+car.seats);
????????Truck truck=new Truck();
????????truck.brand="福田";
????????truck.color="红色";
????????truck.load="6.5吨";
????????System.out.println(truck.brand+truck.color+truck.load);
????}
}

文章来源:https://blog.csdn.net/zhzjn/article/details/135118170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。