Tengo que hacer un ejercicio de clases abstractas en java, lo tengo casi terminado pero me da un error y no logro darme cuenta de donde viene...
El ejercicio consiste en una clase abstracta llamada ALGORITME que deriva a AMULTIPLICACIO y ADIFERENCIA, estas 2 ultimas heredando de ALGORITME. Luego una clase llamada ENCRIPTADOR (yo creo que no es muy necesaria, pero la tengo que poner...) y por ultimo la clase TEST, donde se muestran los resultados.
Mas abajo os dejo todos los codigos de cada clase. El problema es que en la clase TEST, done pongo "Algoritme oba1 = new AMultiplicacio(10);" o "Algoritme oba2 = new ADiferencia(100);" me da error. Creo que es una tonteria pero es que he tocado un millon de cosas y no lo arreglo...
Gracias!
CODIGOS
ALGORITME:
Código:
AMULTIPLICACIO:public abstract class Algoritme { //Metodes public abstract int encriptar(int codi); public abstract int desencriptar(int codi); }
Código:
ADIFERENCIApublic abstract class AMultiplicacio extends Algoritme { //Atributs private int numero; //Constructors public AMultiplicacio(int num) { numero=num; } //Metodes public int encriptar(int codi) { return codi*numero; } public int desencriptar(int codi) { return codi/numero; } }
Código:
ENCRIPTADOR:public abstract class ADiferencia extends Algoritme { //Atributs private int numero; //Constructors public ADiferencia(int num) { numero=num; } //Metodes public int encriptar(int codi) { return codi-numero; } public int desencriptar(int codi) { return codi+numero; } }
Código:
TEST:public class Encriptador { //Metodes public int encriptar(int codi, Algoritme a1) { return a1.encriptar(codi); } public int desencriptar(int codi, Algoritme a1) { return a1.encriptar(codi); } }
Código:
public class Test { public static void main(String[] args) { int codi=12345; int aux=0; Encriptador e=new Encriptador(); Algoritme oba1 = new AMultiplicacio(10); aux = e.encriptar(codi, oba1); System.out.println("El codi encriptat es "+aux); System.out.println("El codi desencriptat es "+e.desencriptar(aux.oba1)); Algoritme oba2 = new ADiferencia(100); aux = e.encriptar(codi, oba2); System.out.println("El codi encriptat es "+aux); System.out.println("El codi desencriptat es "+e.desencriptar(aux.oba2)); } }