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

回答編集履歴

9

Button can pushでは「ボタンが押せる」と言う意味になるので、Button can be pushed「ボタンを押すことができる」に変更

2020/02/04 05:19

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -10,15 +10,15 @@
10
10
 
11
11
  例えば、`ToggleButton is a Button, and FlatButton is a Button`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Button`クラスを継承させます。
12
12
 
13
- 例えば、`ToggleButton can push, and FlatButton can push`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Pushable`インターフェイスを実装させます。
13
+ 例えば、`ToggleButton can be pushed, and FlatButton can be pushed`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Pushable`インターフェイスを実装させます。
14
14
 
15
- もちろん、`Button`という抽象クラスを定義して、`Button can push`という関係を明示するために`Button`に`Pushable`を実装しても構いません。
15
+ もちろん、`Button`という抽象クラスを定義して、`Button can be pushed`という関係を明示するために`Button`に`Pushable`を実装しても構いません。
16
16
 
17
17
  # 実際に何の意味があるのか
18
18
 
19
19
  最初にも書きましたが、**ポリモーフィズム**を使えることが一番おいしいのです。
20
20
 
21
- `is a button`なオブジェクトまたは、または`can push`なオブジェクトなら特定の処理をしたいというケースがあります。
21
+ `is a button`なオブジェクトまたは、または`can be pushed`なオブジェクトなら特定の処理をしたいというケースがあります。
22
22
  その場合はインターフェイスの型や抽象クラスの型を引数に取り、プログラムを書くことができます。
23
23
 
24
24
  ```Java

8

文章の修正

2020/02/04 05:19

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -67,4 +67,4 @@
67
67
 
68
68
  これが**ポリモーフィズム**(多態性)です。
69
69
 
70
- 後で`DecorativeButton`を追加したいという時になっても、そこに`Button`クラスを継承させたり、`Pushable`インターフェイスを実装させたりすることですぐにアプリケーションへ組み込むことが出来ます。
70
+ 後で`DecorativeButton`という新しいクラスを追加したいという時になっても、そこに`Button`クラスを継承させたり、`Pushable`インターフェイスを実装させたりすることですぐにアプリケーションへ組み込むことが出来ます。

7

カンマがないのが気になる

2020/02/02 08:02

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  例えば、`ToggleButton is a Button, and FlatButton is a Button`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Button`クラスを継承させます。
12
12
 
13
- 例えば、`ToggleButton can push and FlatButton can push`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Pushable`インターフェイスを実装させます。
13
+ 例えば、`ToggleButton can push, and FlatButton can push`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Pushable`インターフェイスを実装させます。
14
14
 
15
15
  もちろん、`Button`という抽象クラスを定義して、`Button can push`という関係を明示するために`Button`に`Pushable`を実装しても構いません。
16
16
 

6

an => a

2020/02/02 07:58

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  抽象クラスは`is-a`関係を作るための機能であり、
9
9
  インターフェイスは`can-do`関係を作るための機能です。
10
10
 
11
- 例えば、`ToggleButton is a Button, and FlatButton is an Button`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Button`クラスを継承させます。
11
+ 例えば、`ToggleButton is a Button, and FlatButton is a Button`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Button`クラスを継承させます。
12
12
 
13
13
  例えば、`ToggleButton can push and FlatButton can push`という関係を明示するときは`ToggleButton`と`FlatButton`クラスに`Pushable`インターフェイスを実装させます。
14
14
 

5

文章の修正

2020/02/02 07:55

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -63,7 +63,7 @@
63
63
  }
64
64
  ```
65
65
 
66
- 上記のように書くことで、引数に渡されたインスタンスがそクラスによって違う状態を取得したり、振る舞せたりすることができます。
66
+ 上記のように書くことで、引数に渡されたインスタンスの状態を取得したり、インスタンス毎に違う振る舞いをさせたりすることができます。
67
67
 
68
68
  これが**ポリモーフィズム**(多態性)です。
69
69
 

4

pushしてないのでpushした

2020/02/02 07:53

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -28,13 +28,15 @@
28
28
  Button fb = new FlatButton();
29
29
  getButtonIsEnabled(tb);
30
30
  getButtonIsEnabled(fb);
31
+ pushSomething(tb);
32
+ pushSomething(fb);
31
33
  }
32
34
 
33
35
  public static void getButtonIsEnabled(Button b){
34
36
  System.out.println(b.getEnabled());
35
37
  }
36
38
 
37
- public static void push(Pushable p){
39
+ public static void pushSomething(Pushable p){
38
40
  p.push();
39
41
  }
40
42
  }

3

表記ゆれ

2020/02/02 07:51

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -19,7 +19,7 @@
19
19
  最初にも書きましたが、**ポリモーフィズム**を使えることが一番おいしいのです。
20
20
 
21
21
  `is a button`なオブジェクトまたは、または`can push`なオブジェクトなら特定の処理をしたいというケースがあります。
22
- その場合はインタフェスの型や抽象クラスの型を引数に取り、プログラムを書くことができます。
22
+ その場合はインタフェスの型や抽象クラスの型を引数に取り、プログラムを書くことができます。
23
23
 
24
24
  ```Java
25
25
  public class Main {

2

コードの修正(見た目が少し気になる)

2020/02/02 07:49

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -42,10 +42,9 @@
42
42
 
43
43
  ```Java
44
44
  public abstract class Button implements Pushable{
45
+ private boolean enabled = true;
45
46
  public abstract void push();
46
47
 
47
- private boolean enabled = true;
48
-
49
48
  public boolean getEnabled(){
50
49
  return this.enabled;
51
50
  }

1

ちょっと文言変えました

2020/02/02 07:49

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  最初にも書きましたが、**ポリモーフィズム**を使えることが一番おいしいのです。
20
20
 
21
- `is a button`なオブジェクトまたは、または`can push`できるオブジェクトなら特定の処理をしたいというケースがあります。
21
+ `is a button`なオブジェクトまたは、または`can push`オブジェクトなら特定の処理をしたいというケースがあります。
22
22
  その場合はインタフェースの型や抽象クラスの型を引数に取り、プログラムを書くことができます。
23
23
 
24
24
  ```Java
@@ -62,6 +62,8 @@
62
62
  }
63
63
  ```
64
64
 
65
- 上記のように書くことで、引数に渡された実際オブジェト(`ToggleButton`や`FlatButton`)ごと持つメンバー利用したり、振る舞わせたりすることができます。
65
+ 上記のように書くことで、引数に渡されたインスタンスがそのクラスよって違う状態取得したり、振る舞わせたりすることができます。
66
66
 
67
+ これが**ポリモーフィズム**(多態性)です。
68
+
67
- 後で`Decorative Button`を追加したいという時になっても、そこに`Button`クラスを継承させたり、`Pushable`インターフェイスを実装させたりすることですぐにアプリケーション組み込むことが出来ます。
69
+ 後で`DecorativeButton`を追加したいという時になっても、そこに`Button`クラスを継承させたり、`Pushable`インターフェイスを実装させたりすることですぐにアプリケーション組み込むことが出来ます。