Erro sobre Abstract

5 respostas Resolvido
java
V

Olá, no código abaixo eu estou passando uma palavra com a String para a classe Integrante , até o exibeInstru, mas estou com esse erro que nunca tinha visto antes.

<strong>\Integrante.java:3: error: Integrante is not abstract and does not override abstract method exibeInstru(String) in MostraInstru</strong>

<strong>public class Integrante extends Banda implements MostraInstru {</strong>

<strong>^</strong>

<strong>.\MostraInstru.java:3: error: cannot find symbol</strong>

<strong>String instru = guitarra;</strong>

<strong>^</strong>

<strong>symbol:   variable guitarra</strong>

<strong>location: interface MostraInstru</strong>

<strong>2 errors</strong>

Os códigos estão assim:

public interface MostraInstru{

String instru = guitarra;

public void exibeInstru(String instru);
}

=================================================================

public class Integrante extends Banda implements MostraInstru {

private int idade = 0;
private String instrumento = “”;

//==========================================================

public void exibeInstru(){
System.out.println("\nO instrumento usado: " +instru);

}
}

5 Respostas

Z

Você esqueceu de colocar guitarra entre aspas duplas ""
Aliás, você está usando essa variável do jeito errado:

String instru = guitarra; //você não precisa dessa linha, pois você está declarando a mesma variável nos argumentos do método exibeInstru(String instru)
 
 public void exibeInstru(String instru);

Você esqueceu o parâmetro String instru nessa implementação

V

Então fiz a devidas mudanças, mas agora ele apresenta outro erro em outra classe, a classe que eu uso para exibir para o usuário.

ERRO:

<strong>ShowTime.java:133: error: method exibeInstru in class Integrante cannot be applied to given types;</strong>

<strong>integran.exibeInstru();</strong>

<strong>^</strong>

<strong>required: String</strong>

<strong>found: no arguments</strong>

<strong>reason: actual and formal argument lists differ in length</strong>

<strong>1 error</strong>

classe:
public class ShowTime {

public static void main(String arg[]){

Banda b1 = new Banda();

Entrada entrada = new Entrada();

Integrante integran = new Integrante();

integran.exibeInstru();

}
}

V

Resolvi o erro anterior, passando String instru como parametro, mas agora, to com um erro aparentemente besta aqui, que não estou conseguindo encontrar o por que.

ERRO:

<strong>ShowTime.java:133: error: ‘)’ expected</strong>

<strong>integran.exibeInstru(String instru);</strong>

<strong>^</strong>

<strong>ShowTime.java:133: error: not a statement</strong>

<strong>integran.exibeInstru(String instru);</strong>

<strong>^</strong>

<strong>ShowTime.java:133: error: ‘;’ expected</strong>

<strong>integran.exibeInstru(String instru);</strong>

<strong>^</strong>

<strong>3 errors</strong>

CODIGO:

public class ShowTime {

public static void main(String arg[]){

Banda b1 = new Banda();

Entrada entrada = new Entrada();

Integrante integran = new Integrante();

integran.exibeInstru(String instru);

}
}

Z
Solucao aceita

Calma, se liga nisso aqui:

public void exibeInstru(String instru){
        System.out.println("\nO instrumento usado: " +instru);
    }

Esse método/função está usando String instru como parâmetro, né? Ok.
Tendo isso em mente, String é o tipo de dado do parâmetro e instru é a variável que vai armazenar o valor do parâmetro. Ok?
Quando você for chamar o método/função, você deve especificar o valor que essa variável deve armazenar, assim:

//chamando o método|função
integran.exibeInstru("guitarra");//guitarra é o valor da variável `instru`, ou seja, é o valor do parâmetro!

Sendo assim, quando esse metódo/função for executado, ele vai imprimir:

O instrumento usado: guitarra

V

Funcionou, muito abrigadooo!

Criado 17 de abril de 2021
Ultima resposta 17 de abr. de 2021
Respostas 5
Participantes 2