-
-
Notifications
You must be signed in to change notification settings - Fork 112
Expand file tree
/
Copy pathJava17SealedClasses.java
More file actions
41 lines (33 loc) · 878 Bytes
/
Copy pathJava17SealedClasses.java
File metadata and controls
41 lines (33 loc) · 878 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package example;
public class Java17SealedClasses {
public sealed class Shape
permits Circle, Square, Rectangle {
public double area() {
return 0.0;
}
}
public final class Circle extends Shape {
public double radius;
}
public non-sealed class Square extends Shape {
public double side;
}
public sealed class Rectangle extends Shape permits FilledRectangle {
public double width;
public double height;
}
public final class FilledRectangle extends Rectangle {
public String color;
}
public sealed interface Service permits Alpha, Beta {
void run();
}
public final class Alpha implements Service {
public void run() {
}
}
public final class Beta implements Service {
public void run() {
}
}
}