《从C/C++到Java入门指南》- 26.record 类+多态
record 类+多态
前言
由于 record
类比较简单,将他和多态放在一节中。
record 类
final
类是从 Java 16
开始才正式发布的,可以理解为一个final class
,提供了一种更简洁紧凑的定义final
类的方式。
public record Clock(int hours, int minutesperhour) {
public int getHours() {
return this.hours;
}
public int getMinutesperhour() {
return this.minutesperhour;
}
}
多态
之前学过将子类的对象视为父类的做法叫做“向上转型”。
class Shape {
public static void draw(Shape s) {
if (s instanceof Circle) {
System.out.println("绘制圆");
} else if (s instanceof Square) {
System.out.println("绘制方");
} else {
System.out.println("绘制父类图形");
}
}
}
class Circle extends Shape {}
class Square extends Shape {}
public class Main {
public static void main(String args[]) {
Shape.draw(new Shape());
Shape.draw(new Circle());
Shape.draw(new Square());
}
}
如果在图形类中统一处理所有延申类的图形绘制,利用向上转型的思想,可以大大提高项目效率。