Notas de conhecimento básico de Java 4 - polimorfismo

Polimorfismo

Visão geral

O polimorfismo é a terceira característica da orientação a objetos após o encapsulamento e a herança.
Na vida, por exemplo, as ações de correr, gatos, cachorros e elefantes, correm de forma diferente. Outro exemplo é o movimento de voar: insetos, pássaros e aviões são diferentes quando voam. Pode-se ver que o mesmo comportamento pode ser corporificado de diferentes formas por meio de coisas diferentes. O polimorfismo descreve tal estado.

definição

Refere-se ao mesmo comportamento com várias manifestações diferentes.

premissa

  1. Herdar ou realizar [escolha uma das duas]
  2. Método de reescrita [significado: sem reescrita, sem sentido]
  3. A referência da classe pai aponta para o objeto da classe filha [forma de realização]

Código

O polimorfismo refletido no código é na verdade uma frase: as referências da classe pai apontam para os objetos da classe filha.

formato:

Nome da classe pai nome do objeto = nome da nova subclasse ();

ou

Nome da interface nome do objeto = novo nome da classe de implementação ();

Variável de membro e regras de acesso ao método

Variáveis ​​de membro

1. Acesse as variáveis ​​de membro diretamente através dos objetos da subclasse:
quem estiver do lado esquerdo do sinal de igual dará prioridade a quem for usado e, caso não esteja, procure.
2. Acesso indireto às variáveis ​​de membro através de métodos de membro:
quem pertencer ao método será usado primeiro e, caso não seja, procure.

O mesmo que herança.

Método de membro

Quem é novo à direita dará prioridade a quem é novo, senão olhe para cima.

O mesmo que herança.

Fórmula

Variáveis ​​de membro: compilar para a esquerda e executar para a esquerda.

Método membro: compilar e olhar para a esquerda, executar e olhar para a direita.

Os benefícios do polimorfismo

Insira a descrição da imagem aqui

Downcast e upcast

Insira a descrição da imagem aqui

instância de palavra-chave

Para evitar a ocorrência de ClassCastException, Java fornece a palavra-chave instanceof para verificar o tipo de variáveis ​​de referência, o formato é o seguinte:

1. Instância do nome da variável do tipo de dados
2. Se a variável pertencer a este tipo de dados, retorne verdadeiro.
3. Se a variável não pertencer ao tipo de dados, retorna falso.

public class Test {
    
    

    public static void main(String[] args) {
    
    
        Animal animal = new Dog();
        animal.eat();
        givePet(animal);
        givePet(new Cat());
    }

    public static void givePet(Animal animal){
    
    
        if(animal instanceof Dog){
    
    
            Dog d = (Dog) animal;
            d.protectHouse();
        }
        if(animal instanceof Cat){
    
    
            Cat c = (Cat) animal;
            c.catchMouse();
        }
    }
}

Acho que você gosta

Origin blog.csdn.net/weixin_43215322/article/details/108684068
Recomendado
Clasificación