Skip to content

Questões sobre Herança

Questão 1
Identifique a alternativa que melhor descreve o conceito de herança.
  • A. Modificador que permite apenas a própria classe acessar os atributos ou métodos.
  • B. Técnica de ocultamento dos detalhes dos objetos.
  • C. Uma associação do tipo todo parte onde as partes podem existir independente do todo.
  • D. Mecanismo que permite o reaproveitamento de código e organização hierárquica de classes.
  • E. Nenhuma das anteriores
  • Questão 2
    No Java não é permitido realizar múltipla herança de classes. Ou seja, uma classe não pode estender mais de uma classe ao mesmo tempo. Diante dessa limitação, qual é o tipo de relacionamento mais utilizado para representar a ideia de “reutilização de comportamentos de múltiplas fontes” em Java?
  • A. Herança múltipla
  • B. Associação
  • C. Composição (ou agregação)
  • D. Dependência circular
  • E. Nenhuma das anteriores
  • Questão 3
    Identifique o símbolo da UML que representa a visibilidade protegida.
  • A. +
  • B. -
  • C. #
  • D. ~
  • E. Nenhuma das anteriores
  • Questão 4
    Identifique o símbolo da UML que representa a visibilidade de pacote (package).
  • A. +
  • B. -
  • C. #
  • D. ~
  • E. Nenhuma das anteriores
  • Questão 5
    Analise o diagrama e identifique a alternativa correta.
  • A. ClasseA representa o objeto "todo" no relacionamento de agregação.
  • B. ClasseA representa o objeto "todo" no relacionamento de composição.
  • C. ClasseB depende da ClasseA
  • D. ClasseB extende a ClasseA
  • E. Nenhuma das anteriores
  • Questão 6
    Analise o diagrama e identifique as classes que estão em um relacionamento de Herança.
  • A. ClasseV e ClasseL
  • B. ClasseF e ClasseB
  • C. ClasseG e ClasseA
  • D. ClasseH e ClasseK
  • E. Nenhuma das anteriores
  • Questão 7
    Analise o código e identifique o diagrama UML que representa corretamente a relação entre as classes.
    
    class Animal { }
    
    class Cachorro extends Animal { }
    
  • A.
  • B.
  • C.
  • D.
  • E. Nenhuma das anteriores
  • Questão 8
    Analise o código e identifique o diagrama UML correto da hierarquia.
    
    class A { }
    
    class B extends A { }
    
    class C extends B { }
    
  • A.
  • B.
  • C.
  • D.
  • E. Nenhuma das anteriores
  • Questão 9
    Analise o código e identifique o diagrama UML correto.
    
    class Veiculo { }
    
    class Carro extends Veiculo { }
    
    class Moto extends Veiculo { }
    
  • A.
  • B.
  • C.
  • D.
  • E. Nenhuma das anteriores
  • Questão 10
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A {
      public void metodo(){
        System.out.println("1");
      }
    }
    public class Main{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new Main();
        main.metodo();
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 11
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A {
      public void metodo(){
        System.out.println("1");
      }
    }
    public class Main extends A{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new Main();
        main.metodo();
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 12
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A {
      public void metodo(){
        System.out.println("1");
      }
    }
    public class Main extends A{
      public void metodo2(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new Main();
        main.metodo();
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 13
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A extends Main{
      public void metodo(){
        System.out.println("1");
      }
    }
    public class Main{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new A();
        main.metodo();
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 14
    Analise o código e identifique a mensagem irá imprimir no terminal.
    
    public class A extends Main{
      private int i = 9;
    }
    public class Main{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new A();
        System.out.println(main.i);
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 15
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A extends Main{
      protected int i = 9;
    }
    public class Main{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new A();
        System.out.println(main.i);
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 16
    Analise o código e identifique a mensagem que irá imprimir no terminal.
    
    public class A extends Main{
      public int i = 9;
    }
    public class Main{
      public void metodo(){
        System.out.println("2");
      }
      public static void main(String args[]){
        Main main = new Main();
        System.out.println(main.i);
      }
    }
    
  • A. 1
  • B. 2
  • C. Erro de compilação.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 17
    Analise o código e identifique o problema que existe no código.
    
    public class A {
      public A(int a){}
    }
    public class Main extends A{
      public Main(){ }
      public static void main(String args[]){
        Main main = new Main();
      }
    }
    
  • A. Erro de execução. Erro de conversão de tipos.
  • B. Erro de compilação. Interface não implementada.
  • C. Erro de compilação. Construtor da super classe deve ser invocado.
  • D. Erro de compilação. Classe final não pode ser herdada.
  • E. Nenhuma das anteriores
  • Questão 18
    Analise o código e identifique o problema que existe no código.
    
    public final class A {
      public A(){}
    }
    public class Main extends A{
      public Main(){ }
      public static void main(String args[]){
        Main main = new Main();
      }
    }
    
  • A. Erro de execução.
  • B. Erro de compilação. Interface não implementada.
  • C. Erro de compilação. Construtor da super classe deve ser invocado.
  • D. Erro de compilação. Classe final não pode ser herdada.
  • E. Nenhuma das anteriores
  • Questão 19
    Analise o código e identifique o problema que existe no código.
    
    public class A {
      public A(int a){}
    }
    public class Main extends A{
      public Main(){ super(0); }
      public static void main(String args[]){
        Main main = new Main();
      }
    }
    
  • A. Erro de execução.
  • B. Erro de compilação. Interface não implementada.
  • C. Erro de compilação. Construtor da super classe deve ser invocado.
  • D. Erro de compilação. Classe final não pode ser herdada.
  • E. Nenhuma das anteriores
  • Questão 20
    Analise o código e identifique o problema que existe no código.
    
    public class A {
      public A(int a){}
    }
    public class Main extends A{
      public Main(){ }
      public static void main(String args[]){
        Main main = new A(1);
      }
    }
    
  • A. Erro de execução.
  • B. Erro de compilação. Interface não implementada.
  • C. Erro de compilação. Construtor da super classe deve ser invocado.
  • D. Erro de compilação. Classe final não pode ser herdada.
  • E. Nenhuma das anteriores
  • Questão 21
    Analise e identifique o problema que existe no código.
    
    public class A {
      public A(int a){}
    }
    public class Main{
      public Main(){ }
      public static void main(String args[]){
        Main main = new A(1);
      }
    }
    
  • A. Erro de execução.
  • B. Erro de compilação. Interface não implementada.
  • C. Erro de compilação. Construtor da super classe deve ser invocado.
  • D. Erro de compilação. Classe final não pode ser herdada.
  • E. Nenhuma das anteriores
  • Questão 22
    Analise o código e identifique o resultado da execução.
    
    public class A {
      public final void metodo(){
        System.out.println("A");
      }
    }
    
    public class B extends A {
      public void metodo(){
        System.out.println("B");
      }
    
      public static void main(String args[]){
        B b = new B();
        b.metodo();
      }
    }
    
  • A. A
  • B. B
  • C. Erro de compilação. O método não pode ser sobrescrito.
  • D. Erro de execução.
  • E. Nenhuma das anteriores
  • Questão 23
    Analise o código e identifique o problema existente.
    
    public final class A {
      public void metodo(){
        System.out.println("A");
      }
    }
    
    public class B extends A {
      public void metodo(){
        System.out.println("B");
      }
    
      public static void main(String args[]){
        B b = new B();
        b.metodo();
      }
    }
    
  • A. A
  • B. B
  • C. Erro de compilação. Classe final não pode ser herdada.
  • D. Erro de compilação. Método final não pode ser sobrescrito.
  • E. Nenhuma das anteriores
  • Questão 24
    Analise o código e identifique o que será impresso no terminal.
    
    public class A {
      public void metodo1(){
        System.out.println("A1");
      }
    
      public void metodo2(){
        System.out.println("A2");
      }
    }
    
    public class B extends A {
      @Override
      public void metodo1(){
        System.out.println("B1");
      }
    }
    
    public class C extends B {
      @Override
      public void metodo2(){
        System.out.println("C2");
      }
    
      public static void main(String args[]){
        C obj = new C();
        obj.metodo1();
        obj.metodo2();
      }
    }
    
  • A. A1 e A2
  • B. B1 e A2
  • C. B1 e C2
  • D. A1 e C2
  • E. Erro de compilação
  • Questão 25
    Analise o código e identifique o que será impresso no terminal.
    
    public class A {
      public void metodo1(){
        System.out.println("A1");
      }
    
      public void metodo2(){
        System.out.println("A2");
      }
    }
    
    public class B extends A {
      @Override
      public void metodo1(){
        System.out.println("B1");
      }
    }
    
    public class C extends B {
      @Override
      public void metodo2(){
        System.out.println("C2");
      }
    }
    
    public class Main {
      public static void main(String args[]){
        A obj = new B();
        obj.metodo1();
        obj.metodo2();
      }
    }
    
  • A. A1 e A2
  • B. B1 e A2
  • C. B1 e C2
  • D. A1 e C2
  • E. Erro de compilação
  • Questão 26
    Analise o código e identifique o resultado da execução.
    
    public class A { }
    
    public class B extends A { }
    
    public class C extends B { }
    
    public class D extends B { }
    
    public class Main {
      public static void main(String args[]){
        A obj = new C();
    
        D d = (D) obj;
    
        System.out.println("OK");
      }
    }
    
  • A. OK
  • B. Erro de compilação
  • C. Erro de execução (ClassCastException)
  • D. Nenhuma das anteriores
  • E. O código não compila pois não há métodos
  • Questão 27
    Analise o código e identifique o resultado da execução.
    
    public class A { }
    
    public class B extends A { }
    
    public class C extends B { }
    
    public class D extends B { }
    
    public class Main {
      public static void main(String args[]){
        A obj = new C();
    
        B b = (B) obj;
    
        System.out.println("OK");
      }
    }
    
  • A. OK
  • B. Erro de compilação
  • C. Erro de execução (ClassCastException)
  • D. Nenhuma das anteriores
  • E. Conversão inválida entre classes