classmotor{//ATRIBUTOSintvelocidade;Stringfabricante;intvoltagem;Stringligadesliga;//METODOSvoidligamotor(){ligadesliga="ON";System.out.println(ligadesliga);}voiddesligamotor(){ligadesliga="OFF";System.out.println(ligadesliga);}voidvelocidademotor(){velocidade=200;System.out.println(velocidade+" KM/H ");}}classmotor2extendsmotor{voidaumentarvelocidade(){if(velocidade<0)velocidade++;{System.out.println(velocidade);}}voidreduzirvelocidade(){if(velocidade>5000)velocidade--;}}classtestemotor{publicstaticvoidmain(Stringargs[]){motormt=newmotor();mt.ligamotor();mt.desligamotor();mt.velocidademotor();mt.aumentarvelocidade();}}
Ali no class motor2 extends motor quero que aumente a velocidade e não passe de 5000, porque quando compilo da o seguinde erro
C:\java\motor.java:56: cannot find symbol
symbol : method aumentarvelocidade()
location: class motor
mt.aumentarvelocidade();
^
1 error
desse modo o motor vai aumentar sua velocidade de 10 em 10, quando chegar no 5000, ele vai parar e passar para o proximo metodo, de desligar o motor.
B
Bruno_Laturner
O problema está na declaração do método, aumentavelocidade pertence somente à classe motor2, e você tenta chamar o método com usando um objeto declarado como motor.
Brn_SI
Neste caso ai billcaio vc esta criando o objeto mt direto da classe motor e vc esta chamando o metodo da classe motor2, desta maneira que vc esta fazendo nao tem como pq a classe motor nao esta extendendo da classe motor2 mas sim ao contrario intao se vc fizer desta maneira vc conseguirá
public class testemotor {
public static void main(String args[]){
motor2 mt = new motor2();
mt.ligamotor();
mt.desligamotor();
mt.velocidademotor();
mt.aumentarvelocidade();
}
}
A sua classe [b] motor2[b] esta extendendo da classe [b] motor[b] e neste caso a classe [b] motor2[b] tem acesso aos seus metodos e os metodos da classe [b]motor[b] e assim vc conseguirá imprimir.
flw.
caio_ferreira
é, assim, ta certo, eu nao criei a classe motor 2.