Três características da programação orientada a objetos: polimorfismo de herança de encapsulamento

Pacote

Algumas informações da classe estão ocultas dentro da classe e nenhum programa externo tem permissão para acessá-las diretamente, e a operação e o acesso às informações ocultas podem ser realizados através dos métodos fornecidos pela classe. Em outras palavras, oculte as informações do objeto e saia da interface de acesso. Para atingir o objetivo diretamente manipulando o objeto da classe, não há necessidade de se ter um bom entendimento da implementação específica, e a implementação específica dos atributos e métodos da classe é invisível para o exterior. Não é apenas conveniente, mas também protetor.

por exemplo

public class Student {
    
    
    private int id;//id属性私有化
    private String name;//name属性私有化

    //获取id的方法
    public int getId() {
    
    
        return id;
    }

    //设置id的方法
    public void setId(int id) {
    
    
        this.id = id;
    }

    //获取name的方法
    public String getName() {
    
    
        return name;
    }

    //设置name的方法
    public void setName(String name) {
    
    
        this.name = name;
    }
}

 
 

herdar

Herança é uma tecnologia que usa a definição de uma classe existente como base para criar uma nova classe. A definição de uma nova classe pode adicionar novos dados ou novas funções, ou usar as funções da classe pai, mas não pode herdar seletivamente o pai classe. O código anterior pode ser reutilizado facilmente usando herança.

Lembre-se dos seguintes 3 pontos sobre herança:

  • A subclasse tem todas as propriedades e métodos do objeto da classe pai (incluindo propriedades privadas e métodos privados), mas as propriedades e métodos privados na classe pai são inacessíveis para a subclasse, eles simplesmente os possuem.

  • As subclasses podem ter suas próprias propriedades e métodos, ou seja, as subclasses podem estender a classe pai.

  • As subclasses podem implementar os métodos da classe pai de sua própria maneira.
     
     

Polimorfismo

Polimorfismo, como o nome indica, significa que um objeto tem vários estados. Especificamente, a referência da classe pai aponta para a instância da classe filha.

Definição de polimorfismo

Refere - se ao tipo específico apontado pela variável de referência definida no programa e a chamada do método emitida através da variável de referência não é determinada no momento da programação, mas é determinada durante a execução do programa , ou seja, a instância do objeto para qual classe uma variável de referência apontará. O método no qual a chamada de método emitida pela variável de referência é o método implementado na classe deve ser determinado durante a execução do programa.

Vantagens do polimorfismo

Como a classe específica é determinada quando o programa está em execução, a variável de referência pode ser associada a uma variedade de implementações de classe diferentes sem modificar o código-fonte, o que fará com que o método específico chamado pela referência mude de acordo, isto é, não modificar O código do programa pode alterar o limite do código específico quando o programa está em execução, para que o programa possa selecionar vários estados de execução, o que é polimorfismo.

Características do polimorfismo

  • Existe uma relação de herança (classe) / implementação (interface) entre o tipo de objeto e o tipo de referência;
  • O método no qual o método emitido pela variável de tipo de referência chama o método no qual a classe deve ser determinada durante a execução do programa;
  • O polimorfismo não pode chamar o método "existe apenas na classe filha, mas não existe na classe pai";
  • Se a subclasse sobrescrever o método da classe pai, o método que a subclasse cobre é realmente executado.Se a subclasse não sobrescrever o método da superclasse, o método da superclasse é executado.

Implementação de polimorfismo

Existem duas formas de polimorfismo em Java: herança (reescrever o mesmo método por várias subclasses) e interface (implementar a interface e substituir o mesmo método na interface).
 

por exemplo

public class Animal {
    
    
    int id = 1;
    public void name(){
    
    
        System.out.println("动物");
    }
}
class Cat extends Animal{
    
    
    int id = 2;
    public void name(){
    
    
        System.out.println("猫");
    } 
}
//子类对象的多态性使用前提:1.要有类的继承 2.要有子类对父类方法的重写
public class Test {
    
    
    public static void main(String[] args) {
    
    
    	//子类对象的多态性:父类的引用指向子类对象
          Animal a = new Cat();//向上转型
          
        //虚拟方法调用:通过父类的引用指向子类对象的实体,调用方法时,实际执行子类重写父类的方法
          a.name();//输出:猫
          
        //输出的是Person对象的id属性
          System.out.println(p.id);//输出:1
    }
}

Acho que você gosta

Origin blog.csdn.net/weixin_43901865/article/details/112672546
Recomendado
Clasificación