O seguinte é da Wikipedia, uma explicação da verificação do tipo estático e verificação de tipo dinâmico:
• Verificação do tipo estático: um processo de verificação de segurança do tipo com base no código -fonte do programa;
• Verificação do tipo dinâmico: o processo de verificação do tipo de segurança durante as execuções do programa;
O Java usa a verificação do tipo estático para analisar o programa durante a compilação para garantir que não haja erros de tipo. A idéia básica é não deixar que erros de tipo ocorram durante o tempo de execução.
O código a seguir é um exemplo, depois de entendê -lo, você entenderá melhor como funciona a verificação do tipo estático Java.
Exemplo de código
Suponha que tenhamos as seguintes aulas, A e B, e B herda A.
classe a {a me () {return this;} public void Doa () {System.out.println ("Do A");}} classe B estende um {public void DOB () {System.out.println ("Do B");}}} Primeiro, o que a chamada para New B (). ME () retornará? Objeto a ou b?
O método me () é declarado devolver um objeto A; portanto, durante a compilação, o compilador sabe apenas que retorna um objeto A. No entanto, ele retorna objeto B durante o tempo de execução porque B herda o método de A e retorna.
Como funciona a verificação do tipo estático?
A seguinte linha de código é ilegal, mesmo que o método DOB () seja chamado pelo objeto B. O problema é que seu tipo de referência é A. Ao compilar o dispositivo, o compilador não conhece seu tipo real, então ele o trata como tipo A.
// ilegalnew b (). Me (). Dob ();
Portanto, apenas o código a seguir pode ser chamado:
// LegalNew B (). ME (). DOA ();
No entanto, podemos lançar seu tipo para B, como segue:
// Legal ((b) novo B (). ME ()). DOB ();
Em seguida, adicionamos uma classe C:
A classe C estende um {public void Dobad () {System.out.println ("do C");}} Em seguida, a seguinte instrução Code passará a verificação do tipo estático:
// Legal ((c) New B (). Me ()). Bebad ();
O compilador não sabe seu tipo real, mas uma exceção será lançada durante o tempo de execução porque o tipo B não pode ser convertido no tipo C;
O exposto acima é a explicação detalhada dos exemplos de como a verificação do tipo estático é executada em Java introduzida a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!