Pensando em polimorfismo em Java3
As pessoas costumam ser confusas com outras características não orientadas a objetos do Java, como a sobrecarga de métodos, que às vezes são apresentados como orientados a objetos. Não se deixe enganar: se não for atrasado, não é polimorfismo
Tradução por texto
As pessoas estão sempre confusas com outro recurso não orientado a objetos do Java, como a sobrecarga de métodos. Às vezes existe como orientado a objetos. Por favor, não seja estúpido. Se não houver ligação tardia (ou seja, ligação dinâmica durante o tempo de execução), ela não é polimórfica.
Portanto, o que essa passagem deseja expressar é que os polimorfismos devem ter ligação dinâmica, caso contrário, não é polimorfismo, e a sobrecarga de métodos não é o polimorfismo (porque a sobrecarga do método é determinada durante o período de compilação e não há ligação dinâmica no período posterior, ou seja, o período de execução)
Quando essas três condições são atendidas 1. Há herança 2. Há substituído 3. Deve haver uma referência de classe de pai apontando para um objeto de classe infantil
<span style = "font-size: 14px;"> Exemplo: public class Endereço {Nome da String Private; endereço público (nome da string) {this.name = name;} public string getName () {retorna nome;} public void SetName (Nome de String) {this.name = name;}} gent da classe (Classe Resumo): String Name) {this.name = name;}} go Gone Class (Resumo Class): String (Nome) {this.name = name;}}} go gest (abstract Class): String Nome) {this.name = name;}}} go a classe (abstrato): o nome da classe; estende o veículo {@OverridePublic void go (endereço de endereço) {System.out.println ("car para" + endereço.getName ());}} plano implementa a classe base: o plano public estende o veículo {@OverrideVoid Go (endereço) {System.out.println ("planing para" +.Teard.get (endereço) (endereço) {System.out.println ("planing para" +. v) {/// O polimorfismo, a classe de mãe aponta para o objeto Subclasse, e a transmissão real é uma subclasse do veículo de classe abstrata, ou classe de implementação, e o compilador encontrará o método de implementação com base na classe de implementação específica. V.GO (novo endereço ("Hangzhou (Resumo)")); /// Este método é reescrito na implementação específica} teste: public static void main (string [] args) {driver d = new driver (); d.Drive (novo plano ()); // Na verdade, é um objeto plano, então o compilador encontrará a implementação do Go em Plane, D.Drive (New Car ()); // Na verdade, é um objeto de carro, então o compilador encontrará a implementação de Go em Plane} Resultado de saída: Plane para Hangzhou (Resumo) Carra para Hangzhou (Resumo) </span>Polimorfismo: refere -se aos diferentes estados da mesma coisa, como: água. A água pode ter três estados:
Gás, líquidos e sólidos. Então o polimorfismo em Java também pode ser entendido como esse significado:
A técnica para definir o objeto pai como igual a um ou mais de seus objetos infantis,
Por exemplo, pai = filho;
O polimorfismo permite a referência de objetos de diferentes classes usando a mesma classe (classe pai),
E execute a mesma operação de maneiras diferentes, dependendo do objeto referenciado.
A implementação polimórfica inclui duas maneiras: sobrecarga e substituição
Por exemplo: Animal A = New Tiger (); Este é um tópico antigo, haha ...
A referência da classe pai aponta para o objeto de classe infantil. A classe de animais contém um método Eat (), e a classe tigre herda
Classe de animais, se a subclasse reescrever o método Eat () da classe pai e, quando chamado, você poderá seguir a classe infantil.
O chamado formal de, é essencialmente o método da classe pai, mas depois que a subclasse é reescrita, torna -se outra maneira, que é o polimorfismo.
O exposto acima é a breve discussão sobre quais aspectos da implementação do polimorfismo Java reflete principalmente. Espero que seja útil para todos e apoie mais wulin.com ~