《Java基础入门》课后习题答案
第4章面向对象(下)
一、填空题
1、一个类如果实现一个接口,那么它就需要实现接口中定义的全部 方法,否则该类就必须定义成 抽象类。
2、一个类可以从其他的类派生出来。派生出来的类称为 子类、用于派生的类称为 父类 或者 基类。
3、定义一个 Java 类时。如果前面加使用final 关键词修饰,那么该类不可以被继承。
4、在Java语言中,所有的类都直接或间接继承自Object 类
5、一个 Lambda 表达式由三个部分组成,分别为 参数列表、“->”、表达式主体
二、判断题
1、错 2、对 3、错 4、对 5、错
1.抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。(×)
2. Java 中被 final 关键字修饰的变量,不能被重新赋值。(√)
3.不存在继承关系的情况下,也可以实现方法重写。(×)
4.函数式接口在Java中是指有且仅有一个抽象方法的接口。(√)
5.接口中只能定义常量和抽象方法。(×)
三、选择题
1、B 2、ABC 3、C 4、C 5、A
1.在类的继承关系中,需要遵循以下哪个继承原则?(B)
A.多重 B.单一 C.双重 D.不能继承
2.关于super关键字以下说法哪些是正确的?(多选)(ABC)
A. super 关键字可以调用父类的构造方法
B.super 关键字可以调用父类的普通方法
C. super 与 this 不能同时存在于同一个构造方法中
D. super 与 this 可以同时存在于同一个构造方法中
3.类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?(C)
A. public B. protected C. private D. default
4.在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?(C)
A. inherits B. implements C.extends D. modifies
5.已知类的继承关系如下:
class Employee;
class Manager extends Employeer class Director extends Employee;则以下语句能通过编译的有哪些?(A)
A. Employee e=new Manager(); B. Direetor d=new Manager();
B. C. Director d=new Employee(); D. Manager menew Director();
四、简答题
1.简述什么是方法重写
2.简述什么是多态。
3.简述抽象类和接口的区别。
1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。
2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应
着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
3、在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量、抽象方法、静态方法和默认方法。由于接口的特殊性,在定义时需要使用interface关键字。
五、编程题
1.设计一个学生类Student和它的一个子类 Undergraduate。要求如下:
(1) Student 类有 name 和 age 属性,一个包含两个参数的构造方法,用于给name和 age 属性赋值,一个 show()方法打印 Student 的属性信息。
(2)本科生类 Undergraduate 增加一个 degre(学位)属性。有一个包含三个参数的构造方法,
前两个参数用于给继承的 name和 age 属性赋值,第三个参数给 degree 专业赋值,一个 show()方法用于打印 Undergraduate 的属性信息。
(3)在测试类中分别创建 Student 对象和 Undergraduate 对象,调用它们的show()。
2. 设计一个 Shape 接口和它的两个实现类 Square 和 Circle。要求如下:
(1)Shape接口中有一个抽象方法area(),方法接收有一个 double类型的参数,返回一个 double 类型的结果。
(2)Square 和 Circle 中实现了 Shape 接口的 area()抽象方法,分别求正方形和圆形的面积并返回。
在测试类中创建 Square和 Circle 对象,计算边长为2的正方形面积和半径为3的圆形面积。
1、参考答案
class Student {
计算机专业java public String name;
public int age;
public Student(String name,int age){
this.name=name;
this.age=age;
}
public void show(){
System.out.println("name: "+name+" age: "+age);
}
}
class UnderGraduate extends Student{
public String degree;
public UnderGraduate(String name,int age,String degree){
super(name, age);
this.degree=degree;
}
public void show(){
System.out.println("name: "+name+" age: "+age+" degree: "+degree);
}
}
public class Test01{
public static void main(String[] args) {
Student student = new Student("zhangsan", 16);
student.show();
UnderGraduate underGraduate = new UnderGraduate("lisi", 20, "bechalor");
underGraduate.show();
}
}
2、参考答案
interface Shape {
double area(double givenValue);
}
class Square implements Shape{
public double area(double sideLength) {
return sideLength*sideLength;
}
}
class Circle implements Shape{
public double area(double r) {
return Math.PI*r*r;
}
}
public class Test02 {
public static void main(String[] args) {
Shape square = new Square();
Shape circle = new Circle();
System.out.println(square.area(2));
System.out.println(circle.area(3));
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论