По каким-то причинам я смотрел на rt.jar, и там я видел некоторые пакеты, такие как java.sql. * Среди других.Спецификации интерфейсов J2SE и реализации этих интерфейсов
В типичной программе JDBC мы пишем (для класса Connection, например):
import java.sql.Connection;
В соответствии с Документами, java.sql.Connection является интерфейс, а не конкретная реализация, и java.sql.Connection находится в rt.jar.
Когда мы пишем программу jdbc, нам нужны драйверы jdbc, и из того, что я прочитал драйверы jdbc, реализуют интерфейсы (например, java.sql.Connection).
Так что, когда мы пишем в обычной программе Java (и загрузить драйверы JDBC)
import java.sql.Connection;
-> делает java.sql.Connection родом из rt.jar или из классов драйвера.
Из чего я предполагаю, в этом случае java.sql.Connection должен поступать из rt.jar (как интерфейс), а фактическая реализация происходит из классов драйверов.
Если мое предположение верно, в общем, нам нужно включить банку с определениями интерфейса, чтобы включить импорт.
Например, рассмотрим такую ситуацию:
package com.vipin.myinterface;
public interface Interface1 {
public void print();
}
И если мы упаковываем выше интерфейс как interface1.jar.
Пусть Concrete1.java реализует этот интерфейс:
package com.vipin.concrete1;
public class Concrete1 implements Interface1 {
public void print() {
//code
}
}
И это упаковано в банке -> concrete1.jar.
Теперь предположим, что я пишу приложение, которое использует метод print(), поэтому мне нужно включить оба эти банки?
Да ................ – ZhongYu
@ bayou.io Почему бы вам не написать ответ? –
@ Würgspaß - coz Я ленив? :) – ZhongYu