Ниже приведено из Википедии, объяснение проверки статического типа и проверки динамического типа:
• Проверка статического типа: процесс проверки безопасности типа на основе исходного кода программы;
• Проверка динамического типа: процесс проверки безопасности типа во время прогонов программ;
Java использует проверку статического типа для анализа программы во время компиляции, чтобы убедиться, что нет ошибок типа. Основная идея состоит в том, чтобы не допустить, чтобы ошибки типа возникали во время выполнения.
Следующий код является примером, после понимания его, вы лучше поймете, как работает проверка статического типа Java.
Пример кода
Предположим, что у нас есть следующие классы, A и B, и B наследники A.
Класс A {a me () {return this;} public void doa () {System.out.println ("Do A");}} класс B расширяет {public void dob () {System.out.println ("Do B");}} Во -первых, какой призыв к новому b (). Мне () вернется? Объект A или B?
Метод ME () объявляется возвращать объект A, поэтому во время компиляции компилятор только знает, что он возвращает объект A. Тем не менее, он возвращает объект B во время выполнения, потому что B наследует метод A и возвращается.
Как работает проверка статического типа?
Следующая строка кода является незаконной, даже если метод DOB () вызывается объектом B. Проблема в том, что его эталонный тип - A. При компиляции устройства компилятор не знает его реального типа, поэтому он рассматривает его как тип A.
// allodalnew b (). me (). dob ();
Итак, можно назвать только следующий код:
// LegalNew B (). Me (). DOA ();
Тем не менее, мы можем поднять его тип B, следующим образом:
// Legal ((b) новый b (). me ()). dob ();
Далее мы добавляем класс C:
Класс C расширяет {public void dobad () {System.out.println ("do c");}} Затем следующий оператор кода пройдет проверку статического типа:
// Legal ((c) новый b (). me ()). bebad ();
Компилятор не знает своего реального типа, но исключение будет брошено во время выполнения, поскольку тип B не может быть преобразован в тип C;
Выше приведено подробное объяснение примеров того, как проверка статического типа выполняется в Java, представленной вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!