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