1. 题目:什么是接口
解题思路:
接口是Java中一种抽象类型,它定义了一组抽象方法和常量,但没有实际的方法实现。接口可以被类实现,实现类需要提供接口中定义的所有方法的具体实现。接口可以用来实现多态性和解耦合。
答案:
接口是Java中一种抽象类型,它定义了一组抽象方法和常量,但没有实际的方法实现。接口通过interface关键字定义,实现接口的类需要使用implements关键字。
例子:
假设有一个动物园接口Zoo,定义了动物园中动物的行为animalSound和feedAnimal,以及动物园的名称常量ZOO_NAME。动物园中的各种动物类(如狮子、大象)可以实现这个接口,并提供各自的具体实现。
代码:
public interface Zoo {
String ZOO_NAME = "MyZoo";
void animalSound();
void feedAnimal();
}
class Lion implements Zoo {
@Override
public void animalSound() {
System.out.println("The lion roars");
}
@Override
public void feedAnimal() {
System.out.println("Feeding meat to the lion");
}
}
2. 题目:什么是抽象类
解题思路:
抽象类是一种不能被实例化的类,它可以包含抽象方法和具体方法。抽象方法是没有方法体的方法,需要在子类中被实现。抽象类可以用来定义一些通用的行为和属性,但具体的实现留给子类。
答案:
抽象类是一种不能被实例化的类,它可以包含抽象方法和具体方法。抽象方法是没有方法体的方法,需要在子类中被实现。抽象类通过abstract关键字定义,不能直接实例化,需要通过子类来实现。
例子:
假设有一个抽象类Shape,定义了计算面积的抽象方法calculateArea,以及颜色属性color。具体的形状类(如圆形、矩形)可以继承这个抽象类,并实现各自的计算面积方法。
代码:
public abstract class Shape {
String color;
public Shape(String color) {
this.color = color;
}
public abstract double calculateArea();
}
class Circle extends Shape {
double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}