在本教程中,我们将探讨如何使用Gson处理多态性。我们还将探索一些处理多态性序列化和反序列化的技巧。
2. JSON中的多态性
Java中的多态性是众所周知的。我们有一个类层次结构,适当的时候,我们可以以某些方式将不同但相关的类型视为相同。
例如,我们可能有一些二维形状的定义。不同形状的定义方式各不相同,但它们都有一些共同的特征——例如,它们都可以计算面积。
因此,我们可以定义一些多态类来定义一些形状:
interface Shape {
double getArea();
}
class Circle implements Shape {
private final double radius;
private final double area;
Circle(double radius) {
this.radius = radius;
this.area = Math.PI * radius * radius;
}
@Override
public double getArea() {
return area;
}
}
class Square implements Shape {
private final double side;
private final double area;
Square(double side) {
this.side = side;
this.area = side * side;
}
@Override
public double getArea() {
return area;
}
}
大约 6 分钟
