/* Page prose (ja) */
"SubclassingOperation" = "# Operation のサブクラス化: 入力と出力を持つ作業\n\n`BlockOperation` は便利ですが、その仕事のすべては 1 つのクロージャの中にあります。Operation の本当の力は、**自分自身の**サブクラスを作ったときに現れます。そうすれば operation は**入力**を保持し、**出力**をプロパティとして公開でき、他のどんな型とも同じように再利用できるからです。\n\n`Operation` をサブクラス化し、1 つのメソッド **`main()`** をオーバーライドします。`main()` がすることが、そのまま作業になります。この章では**同期的**に保ちます。`main()` は上から下へ実行され、`main()` が戻った瞬間に operation は終了します。\n\n印刷所のための `PosterJob` を見てみましょう。タイトルとコピー枚数を入力として受け取り、レンダリングされたポスターの文字列を出力として生成します。";
"SubclassingOperation-2" = "**実行して確認:** `start()` が戻ったあとには `main()` はすでに実行されているので、`renderedPoster` は結果を保持しています。アスタリスクの行、次に `Jazz Night x50`、そしてもう 1 行のアスタリスクです。\n\nこの形に注目してください。**入力は `init` を通して入り、作業は `main()` で行われ、結果はプロパティを通して出てきます。** これは再利用でき、中身を確認できる作業単位であり、素のクロージャには与えられないものです。\n\n* callout(試してみよう): `main()` の最初の行に `print(Thread.isMainThread)` を追加してみましょう。この直接の `.start()` 呼び出しでは、`true` と `false` のどちらを報告しますか？\n\n[前へ](@previous)  |  6 / 9 ページ  |  [次へ: サブクラスをキューで実行する](@next)";
