回答編集履歴

2

更に修正

2016/05/02 09:28

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  ```
18
18
 
19
- ラムダ式で書くことができるのは「関数型インタフェース」のメソッドに限られます。関数型インタフェースとは、メソッドをただ一つだけ持つインタフェースのことです。メソッドを一つしか持たないので、ラムダ式で書く際にオーバーライドするメソッドは一つに限定されます。
19
+ ラムダ式で書くことができるのは「関数型インタフェース」のメソッドに限られます。関数型インタフェースとは、抽象メソッドをただ一つだけ持つインタフェースのことです(デフォルト実装されているものは除く)。メソッドを一つしか持たないので、ラムダ式で書く際にオーバーライドするメソッドは一つに限定されます。
20
20
 
21
21
  Threadのコンストラクタで、関数型インタフェース一つを引数に取るコンストラクタは`Thread(Runnable)`しかありません。このため、ラムダ式はRunnableと推定され、Runnableのrunメソッドをオーバーライドした無名クラスのオブジェクトが生成され、それがThreadのコンストラクタに渡されるのです。

1

語弊がありそうなので訂正

2016/05/02 09:28

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,6 +1,6 @@
1
1
  この書き方は、
2
2
 
3
- > 抽象メソッドrunをクラス定義時に実装している
3
+ > ThreadクラスはRunnableインターフェースを実装していて、抽象メソッドrunをクラス定義時に実装している
4
4
 
5
5
 
6
6