以下是关于 Java 抽象类的一些基本概念和示例:
1. 定义抽象类:
abstract class Shape {
String color;
Shape(String color) {
this.color = color;
}
abstract void draw(); // 抽象方法
}
在上面的例子中,Shape 是一个抽象类,它包含一个抽象方法 draw 和一个属性 color。
2. 继承抽象类:
子类继承抽象类,并提供具体的实现。
class Circle extends Shape {
double radius;
Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
void draw() {
System.out.println("Drawing a " + color + " circle with radius " + radius);
}
}
在上面的例子中,Circle 是一个继承自 Shape 的子类,它提供了对抽象方法 draw 的具体实现。
3. 使用抽象类:
public class Main {
public static void main(String[] args) {
Shape circle = new Circle("red", 5.0);
circle.draw(); // 调用的是 Circle 类中的 draw 方法
}
}
在上面的例子中,通过创建 Circle 类的实例,并用 Shape 类的引用来引用它,实现了对抽象类的多态使用。
4. 抽象类的特点:
- 抽象类不能被实例化,只能被用作父类。
- 抽象类可以包含抽象方法和具体方法。
- 子类继承抽象类时,必须实现抽象类中的所有抽象方法,除非子类也是抽象类。
5. 抽象类 vs. 接口:
- 抽象类可以包含字段(属性),而接口不能。
- 类只能继承一个抽象类,但可以实现多个接口。
- 接口支持多继承,而抽象类只能单继承。
- 抽象类的方法可以有访问修饰符,而接口的方法默认是 public。
抽象类主要用于定义类的层次结构,提供一些共同的方法和属性,而具体的实现由子类完成。
转载请注明出处:http://www.pingtaimeng.com/article/detail/427/Java