Uma classe C extend da Classe B que extend da classe A, sendo esta a supersclasse, qual a ordem de chama do construtor neste caso?
Construtor C, Construtor B, Construtor A
Construtor A, Construtor B, Construtor C
Construtor B, Construtor A, Construtor C
Construtor C, Construtor A, Construtor B
A primeira chamada de um construtor deve ser o construtor da superclasse ou um outro construtor da prórpia classe. Com o é chamado o construtor da Superclasse e o da própria classe?
Default(); super();
Default; this();
this(); super;
super(); this();
Defina interfaces:
Uma interface não é considerada uma Classe e sim uma Entidade. Seus métodos são implicitamente Públicos e Abstratos.
Não possui implementação, apenas assinatura, ou seja, apenas a definição dos seus métodos sem o corpo. As Interfaces são usadas para implementá-las.
Não possui implementação, apenas assinatura, ou seja, apenas a definição dos seus métodos sem o corpo
Seus métodos são implicitamente Públicos e Abstratos.Funcionam como um tipo de "contrato", onde são especificados os atributos, métodos e funções que as classes que implementem essa interface são obrigadas a implementar.
Defina a classe abstrata:
As classes abstratas devem conter pelo menos um método abstrato, que não tem corpo.
É um tipo especial de classe que não há como criar instâncias dela. É um tipo de contrato que faz com que as sub-classes contemplem as mesmas hierarquias e/ou padrões.
É usada apenas para ser herdada, funciona como uma super classe.
Uma grande vantagem é que força a hierarquia para todas as sub-classes. Sendo possível excluir seus métodos quando necessário.
Selecione a característica de herança múltipla entre a interface e classe abstrata respectivamente:
Uma classe pode implementar diversas interfaces; Uma classe pode herdar somente uma classe
Uma classe pode herdar somente uma classe; Uma classe pode implementar diversas interfaces
Selecione a característica de implementação padrão entre a interface e classe abstrata respectivamente:
Uma interface não pode conter qualquer tipo de código, muito menos código padrão; Uma classe abstrata pode fornecer código completo, código padrão ou ter apenas a declaração de seu esqueleto para ser posteriormente sobrescrita.
Uma classe abstrata pode fornecer código completo, código padrão ou ter apenas a declaração de seu esqueleto para ser posteriormente sobrescrita.; Uma interface não pode conter qualquer tipo de código, muito menos código padrão.
Selecione a diferença na declaração de Constantes entre a interface e classe abstrata respectivamente:
Pode conter constantes estáticas e de instância.; Suporte somente constantes do tipo estática.
Suporte somente constantes do tipo estática; Pode conter constantes estáticas e de instância.
Selecione a diferença e similaridade entre Classes Abstratas e Interfaces, respectivamente ,quando for Componentes de terceiros:
Uma classe de terceiros precisa ser reescrita para estender somente a partir da classe abstrata; Uma implementação de uma interface pode ser incluída a qualquer classe de terceiros.
Uma implementação de uma interface pode ser incluída a qualquer classe de terceiros; Uma classe de terceiros precisa ser reescrita para estender somente a partir da classe abstrata.
Quanto a manutenção entre uma interface e classe abstrata, respectivamente:
Se o código do seu cliente conversa somente em termos de uma interface, você pode facilmente alterar a implementação concreta usando um método factory; idem;
Se o código do seu cliente conversa somente em termos de uma interface, você pode facilmente alterar a implementação concreta usando um método observer; idem;
Defina quanto a Clareza uma Interface:
Todas as declarações de constantes em uma interface são presumidamente publicas ou estáticas.
Você pode por código compartilhado em uma classe abstrata. Você pode usar código para computar o valor inicial de suas constantes e variáveis de instância ou estáticas.