package com.trifulcas.cartas; public abstract class Carta { private String palo; private int numero; protected String getPalo() { return palo; } protected void setPalo(String palo) { this.palo = palo; } public int getNumero() { return numero; } protected void setNumero(int numero) { this.numero = numero; } public abstract int getValor(); @Override public String toString() { return getNumero()+" de "+getPalo(); } } package com.trifulcas.cartas; public class Espanyola extends Carta { @Override public int getValor() { return getNumero()<10?getNumero():10; } } package com.trifulcas.cartas; public class Francesa extends Carta { @Override public int getValor() { // TODO Auto-generated method stub return getNumero(); } } package com.trifulcas.cartas; import java.util.ArrayList; public class Baraja { private ArrayList<Carta> baraja=new ArrayList<>(); public int addCarta(Carta carta) { baraja.add(carta); return baraja.size(); } public int totalValor() { int total=0; for(Carta c:baraja) { total+=c.getValor(); } return total; } } package com.trifulcas.cartas; public class ProbarCartas { public static void main(String[] args) { // TODO Auto-generated method stub Francesa f= new Francesa(); f.setPalo("Picas"); f.setNumero(8); System.out.println(f); Baraja miBaraja=new Baraja(); miBaraja.addCarta(f); Espanyola e=new Espanyola(); e.setPalo("Oros"); e.setNumero(12); miBaraja.addCarta(e); System.out.println(miBaraja.totalValor()); } }