Ciao devo realizzare un programma che calcolila somma delle facce superiori di due dadi.

codice:
import java.util.*;
class Dado{

    int facciasuperiore;

    Random r;
    Dado(){
         r=new Random();
        facciasuperiore=0;
    
    }
    public int getFacciasuperiore(){
        return facciasuperiore;
    }
    public void tiraDado(){
            facciasuperiore= 1+r.nextInt(6);
        }
        /**restituisce la somma tra il valore della faccia superiore del dado
    che esegue il metodo e del dado specificato come parametro*/
    public int piu(Dado d){
        d.tiraDado();
        facciasuperiore+=d.getFacciasuperiore();
        return facciasuperiore;
    }
    public String toString(){
        String s="la somma della faccia del dado più dado1 è:"+facciasuperiore;
        return s;
    }    
}
poi da main:

codice:
class TestDado{
public static void main(String[] args){
    Dado dado=new Dado();
    Dado dado1=new Dado();
    dado.tiraDado();
    dado1.tiraDado();
    int faccia1=dado.getFacciasuperiore();
    int faccia2=dado1.getFacciasuperiore();
    System.out.println(dado1.piu(dado1));
    System.out.println(dado1.toString());
    
}
}
Il compilatore stampa come somma lo stesso valore della faccia del dado1.Perchè?