私はJavaにはかなり新しく、このままで立ち往生してください。 私は、具体的なサブクラスによって実装される抽象メソッドのみを '提供する'ことを知っています。これが本当であることを望みます(少なくとも)。 は、だから私は、Excelファイルを読み書きするために、JXL APIのサンプルコードを勉強していました、そして私は、この点に着い:jxl api:なぜwritablesheetはインターフェイスですか?
workbook = Workbook.createWorkbook(new File("/home/me/workspace/files/output.xls"));
WritableSheet sheet = workbook.createSheet("first sheet", 0);
、ワークブックオブジェクトが以前にインスタンス化され、WritableWorkbookオブジェクトでたされていること。 私は、WorkbookがWritableWorkbookのスーパークラスである静的メソッドを使用してブックを作成しています。それまでは、私はそこにいます。 しかし、次に、私は第2の命令で何をしていますか? シートは「WritableSheet」ですが、これはインターフェイスです!そしてAPIを見ると、実装クラスはありません。また、 "WritableSheet"は別のインターフェースのサブインターフェースであり、 "Sheet"です。両方のインターフェイス。しかし、私はインターフェイスからオブジェクトを作成できないと思った。一方、createSheetメソッド(WritableWorkbookで提供)を使用している間は、WritableSheetを作成しているようです。 次にサンプルコードでIはこれに到着:
Label lblNome = new Label(0, 1, "Nome:");
sheet.addCell(lblNome);
問題なし最初の行は、私は新しい要素、ラベル(すなわちテキスト細胞である)を作成します。 しかし、第2?再度、addCellはAPIを見ているインターフェイスメソッドです! シートは以前の実装のどれですか?インターフェイスの私に思われる。 インタフェースが抽象メソッドを提供する場合、どのメソッドを使用していますか?
私にそれを明確にしてください。最後にコードは機能しますが、これらのインターフェイス(SheetとWritableSheet)がどのように機能しているかははっきりしていません。
ありがとう
ありがとうございました!非常に明確な! –