teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2023/05/22 07:10

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -2,5 +2,11 @@
2
2
 
3
3
  「うまいこといかんかったら例外投げるよ」がスーパータイプの仕様に含まれているなら、
4
4
  リスコフの置換原則に違反しません。
5
+ ```Java
6
+ interface Rectangle {
7
+ public void setWidth(int width) throws AssertionError; // うまいこといかんかったら
8
+ public void setHeight(int height) throws AssertionError; // 例外投げるよ(ちゃんとcatchしてね!)
9
+ }
10
+ ```
5
11
 
6
12
  スーパータイプを使ってちゃんと動くプログラムなら、それをサブタイプに取り換えてもちゃんと動く(どちらなのかに応じてプログラムをいぢくる/分岐する必要がない)ってことですから。

1

追記

2023/05/22 07:02

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -1,4 +1,6 @@
1
1
  > サブタイプのオブジェクトはスーパータイプのオブジェクトの仕様に従わなければならない
2
2
 
3
3
  「うまいこといかんかったら例外投げるよ」がスーパータイプの仕様に含まれているなら、
4
- リスコフの置換原則に違反しません。
4
+ リスコフの置換原則に違反しません。
5
+
6
+ スーパータイプを使ってちゃんと動くプログラムなら、それをサブタイプに取り換えてもちゃんと動く(どちらなのかに応じてプログラムをいぢくる/分岐する必要がない)ってことですから。