Referências da superclasse e objetos da subclasse

Java é uma linguagem fortemente tipada.
Conversões padrão e promoções automáticas são aplicadas aos tipos primitivos.
A compatibilidade de tipos é rigorosamente imposta.
Normalmente, uma variável de referência de uma classe não pode referenciar um obj…


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)

  • Java é uma linguagem fortemente tipada.

  • Conversões padrão e promoções automáticas são aplicadas aos tipos primitivos.

  • A compatibilidade de tipos é rigorosamente imposta.

  • Normalmente, uma variável de referência de uma classe não pode referenciar um objeto de outra classe.

Image description

  • Mesmo que as classes X e Y sejam estruturalmente iguais, não é possível atribuir uma referência de X a um objeto de Y porque os tipos são diferentes.

  • Em geral, uma variável de referência de objeto só pode referenciar objetos de seu tipo.

  • A exceção à imposição de tipos é que a variável de referência de uma superclasse pode referenciar objetos de qualquer subclasse derivada dessa superclasse.

Image description

  • Como Y é derivada de X, é permitido que x2 receba uma referência a um objeto de Y.

  • O tipo da variável de referência, e não o tipo do objeto que ela referencia, determina os membros que podem ser acessados.

  • Quando uma referência a um objeto da subclasse é atribuída a uma variável da superclasse, só é possível acessar os membros definidos pela superclasse.

  • No exemplo, x2 não pode acessar o membro b de Y, pois a classe X não tem conhecimento dos membros adicionados pela subclasse.

  • Referências de subclasse atribuídas a variáveis da superclasse são comuns, especialmente ao chamar construtores em hierarquias de classes.

  • Subclasses podem se beneficiar de construtores que recebem um objeto da superclasse como parâmetro, permitindo a criação de cópias de objetos.

Image description

Image description

Image description

  • Nesse programa, t2 é construída a partir de t1 e, portanto, é idêntica.

  • Atenção neste construtor de Triangle:
    // Constrói um objeto a partir de outro.
    Triangle(Triangle ob) {
    super(ob); // passa o objeto para o construtor de TwoDShape
    style = ob.style;
    }

  • Ele recebe um objeto de tipo Triangle e o passa (por intermédio de super) para este construtor de TwoDShape:
    //Constrói um objeto a partir de outro.
    TwoDShape(TwoDShape ob) {
    width = ob.width;
    height = ob.height;
    }

  • O construtor TwoDShape() espera receber um objeto do tipo TwoDShape.

  • O construtor da subclasse Triangle() passa para ele um objeto do tipo Triangle.

  • Isso funciona porque uma referência de uma superclasse, como TwoDShape, pode referenciar um objeto de uma subclasse, como Triangle.

  • É aceitável passar uma referência de um objeto de uma classe derivada para um construtor da superclasse.

  • O construtor da superclasse, TwoDShape(), só inicializa os membros pertencentes à classe TwoDShape, independentemente dos membros adicionais da subclasse Triangle.


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)


Print Share Comment Cite Upload Translate Updates
APA

Java para Iniciantes (Oracle) | Sciencx (2024-09-17T21:46:00+00:00) Referências da superclasse e objetos da subclasse. Retrieved from https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/

MLA
" » Referências da superclasse e objetos da subclasse." Java para Iniciantes (Oracle) | Sciencx - Tuesday September 17, 2024, https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/
HARVARD
Java para Iniciantes (Oracle) | Sciencx Tuesday September 17, 2024 » Referências da superclasse e objetos da subclasse., viewed ,<https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/>
VANCOUVER
Java para Iniciantes (Oracle) | Sciencx - » Referências da superclasse e objetos da subclasse. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/
CHICAGO
" » Referências da superclasse e objetos da subclasse." Java para Iniciantes (Oracle) | Sciencx - Accessed . https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/
IEEE
" » Referências da superclasse e objetos da subclasse." Java para Iniciantes (Oracle) | Sciencx [Online]. Available: https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/. [Accessed: ]
rf:citation
» Referências da superclasse e objetos da subclasse | Java para Iniciantes (Oracle) | Sciencx | https://www.scien.cx/2024/09/17/referencias-da-superclasse-e-objetos-da-subclasse/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.