一、填空题
1、方法,抽象类
2、子类、父类、基类
3、final
4、Object
5、参数列表、“->”、表达式主体
二、判断题
1、错 2、对 3、错 4、对 5、对
三、选择题
1、B 2、ABC 3、C 4、C 5、A
四、简答题
1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。
2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
3、在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量、抽象方法、静态方法和默认方法。由于接口的特殊性,在定义时需要使用interface关键字。
五、编程题
1.class Student {
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));
}
}
六、原题及其解析
一.填空题
1.一个类如果实现一个接口,那么它就需要实现接口中定义的全部( ),否则该类就必须定义成()。 方法 抽象类
2.一个类可以从其他的类派生出来,派生出来的类称为(),用于派生的类称为()或者()。子类 父类 基类
3.定义一个Java类时,如果前面加使用( )关键字修饰,那么该类不可以被继承。final
4.在Java语言中,所有的类都直接或间接继承自()类。Object
5.一个Lambda表达式由三个部分组成,分别为()、()和()。参数列表、“->”、表达式主体
二.判断题
1.抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。() 错×
2.Java中被final关键字修饰的变量,不能被重新赋值。() 对√
3.不存在被继承关系的情况下,也可以实现方法重写。() 错×
4.函数式接口在Java中是指由且仅有一个抽象方法的接口。()对√
5.接口中只能定义常量和抽象方法。() 对√
三.选择题
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 Employee;
class Director extends Employee;
则以下语句能通过编译的有哪些?()A
A.Employee e = new Manager();
B.Director d = new Manager();
C.Director d = new Employee();
D.Manager m = new Director();
四.简答题
1.简述什么是方法重写。
在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。
2.简述什么是多态。
多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
3.简述抽象类和接口的区别。
在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量、抽象方法、静态方法和默认方法。由于接口的特殊性,在定义时需要使用interface关键字。
五.编程题
1.设计一个学生类Student和它的一个子类Undergraduate。要求如下:
(1)Student类有name和age属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息。
(2)本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息。
(3)在测试类中分别创建Student对象和Undergraduate对象,调用它们的show()。
1.class Student {
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.设计一个Shape接口和它的两个实现类Square和Circle。要求如下:
(1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果。
(2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。
在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积。
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));
}
}