回答編集履歴

2

脱字を修正

2024/07/24 09:26

投稿

nanashi123
nanashi123

スコア73

test CHANGED
@@ -28,5 +28,5 @@
28
28
  }
29
29
  ```
30
30
  などの一見外部からインスタンス生成することが不可能に思える設計であっても、メソッドの戻り値で単体のインスタンスを補足できてしまう可能性があるので、このケースを除外できません
31
- ```sealed```でパターンを絞れるは継承先を限定できるからであって、この修飾子特有の恩恵というわけではありません
31
+ ```sealed```でパターンを絞れるは継承先を限定できるからであって、この修飾子特有の恩恵というわけではありません
32
32
  最も、その設計が難しいのでそれを簡易化する修飾子が提供されています

1

インデントを調整

2024/07/24 09:22

投稿

nanashi123
nanashi123

スコア73

test CHANGED
@@ -6,14 +6,14 @@
6
6
  Javaにおいて基底型単体のインスタンス生成を禁止する修飾子が```abstract```です
7
7
  ```java
8
8
  sealed abstract class Charactor permits Hero,Wizard{
9
- protected int hp=0;
9
+   protected int hp=0;
10
10
 
11
- public static void heal(Charactor target){
11
+   public static void heal(Charactor target)
12
- switch(target){
12
+     switch(target){
13
- case Hero h ->{h.hp += 20;}
13
+       case Hero h ->{h.hp += 20;}
14
- case Wizard w -> {w.hp += 5;}
14
+       case Wizard w -> {w.hp += 5;}
15
- }
15
+     }
16
- }
16
+   }
17
17
  }
18
18
  ```
19
19
  これで```Charactor```だけが渡るケースを除外することができます
@@ -24,7 +24,7 @@
24
24
  しかし例外を排除することは難しく、例えば
25
25
  ```java
26
26
  sealed class Charactor permits Hero,Wizard{
27
- protected Charactor(){}
27
+   protected Charactor(){}
28
28
  }
29
29
  ```
30
30
  などの一見外部からインスタンス生成することが不可能に思える設計であっても、メソッドの戻り値で単体のインスタンスを補足できてしまう可能性があるので、このケースを除外できません