Este artigo estuda principalmente conteúdo relacionado sobre sobrecarga, reescrita, polimorfismo, ligação estática e ligação dinâmica em Java, como segue.
Sobrecarga , o nome em inglês é sobrecarga, o que significa que mais de um método com o mesmo nome é definido em uma classe. O número de parâmetros, tipos de parâmetros e ordem desses métodos não podem ser os mesmos. O tipo de retorno pode ser o mesmo ou diferente.
classe pública TSTATATICOVERLOAD {estático int altura; tstaticoverload () {System.out.println ("plantando uma muda"); altura = 0;} tstictoverload (int inicialHeight) {altura = altura do system; "pés de altura");} Informações estáticas de vazio (strings) {System.out.println (s + ": árvore é" + altura + "pés de altura");}} classe pública testSo {public static void main (string [] args) {tstictoverload t = new tstictoverload (5); tstictoverload.info (); tstictoverload.info ("Método de sobrecarga"); new tstaticoverload ();}}}}}}}fora: Criando uma nova árvore com um metro e meio de altura tem um método de sobrecarga de um metro e meio de altura: a árvore tem um metro e meio de altura plantando uma muda
Reescrever, o nome em inglês é substituído, o que significa que, no caso de herança, um método definido na subclasse que tem o mesmo nome, o mesmo tipo de retorno ou o tipo compatível e os mesmos parâmetros que os métodos na classe base é definido. Isso é chamado de subclasse reescreve o método da classe base. Esta é uma etapa necessária para implementar o polimorfismo.
Polimorfismo: um polimorfismo é a capacidade do mesmo comportamento de ter várias manifestações ou formas diferentes.
public class STATICSUPPER {public static string staticget () {return "base staticget ()";} public string dinâmico () {return "base dynamicget ()";}} classe sticticub extensicsUpper {pub static stratget () {return "subsTicget ()";}}}}; Staticmub estende o STATICSUPER {pub static string staticget () {return "Mub staticget ()";} public string dynamicget () {return "mub dynamicget ()";}} classe pública staticpolymorphism {public static void main (string [] args) {sTATICSUPPER SUP1 = new STATICSUB (); System.out.println (sup1.staticGet ()); System.out.println (sup1.dynamicget ()); STATICSUPPER SUP2 = new StaticMub (); System.out.println (sup2.staticGet ()); System.out.println (sup2.dynamicget ()); }}OUT: base staticget () sub dynamicget () base staticget () mub dynamicget ()
O conceito de ligação ao programa:
A ligação refere -se à associação de uma chamada de método com a classe (o corpo do método) onde o método está localizado. Para Java, a ligação é dividida na ligação estática e na ligação dinâmica; ou é chamado de ligação precoce e ligação tardia.
Ligação estática:
O método foi vinculado antes da execução do programa e é implementada pelo compilador ou outro programa de conexão. Por exemplo: C.
Para Java, pode ser entendido como vinculativo durante o período de compilação do programa; Aqui está particularmente claro que os únicos métodos em Java são métodos finais, estáticos, privados e construtores que são a ligação precoce.
Ligação dinâmica:
Posterior ligação: a ligação dinâmica refere -se ao compilador que não sabe qual método chama durante o estágio de compilação até que o tempo de execução esteja ligado de acordo com o tipo do objeto específico.
Se um idioma implementar a ligação tardia, também deverá fornecer alguns mecanismos para determinar o tipo de objeto durante a operação e chamar métodos apropriados separadamente. Em outras palavras, o compilador ainda não conhece o tipo de objeto no momento, mas o mecanismo de chamada de método pode investigá -lo por si só e encontrar o corpo do método correto. Diferentes idiomas têm diferentes maneiras de implementar a ligação tardia. Mas podemos pelo menos pensar desta maneira: todos eles precisam instalar certos tipos especiais de informações no objeto.
A sobrecarga do método inclui sobrecarga de método estático e sobrecarga de métodos comuns. A sobrecarga do método estático é a ligação estática e a chamada do método é através: Nome da classe. método. A sobrecarga do método comum é a ligação dinâmica e as chamadas de método são passadas: referência do objeto de instância. método. O construtor pode ser sobrecarregado, mas não pode ser reescrito.
Os métodos estáticos podem ser reescritos, mas nenhum efeito polimórfico é alcançado.
Resumir
O exposto acima é sobre a breve discussão deste artigo sobre sobrecarga, reescrita, polimorfismo, ligação estática e ligação dinâmica em Java. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!