I don't really know if I used interfaces or not but I have 0 reputation and I wanted to provide a solution to your answer that wasn't already posted (as if I could have created those anyway).
There's only one class so I don't know if that counts as inheritance?
But you have to construct a switch statement for each type of dice roll you want.
public class Dice{
private int whoodat; //whoodat is the result of the rolls for each Dice instance
    public int roll (int s, int dieType){
        float low = 1;
        float high = 4;
        //assuming 4 sided die are lowest conventional die size
        switch(dieType){
            case 1: low = s/2; high = s; break; 
            case 2: low = 0; high = s/2; break;
            case 3: low = 1; high = s; break;
            default: low = 1; high = s; break;      
        }
        int view = (int) processing.core.PApplet.map(
                ((float)Math.random()), ((float)0.0), ((float)1.0), low, high);
        return view;                    
    }
//Roll method that accepts parameters from a Dice constructor
//and does the work you want for weighting a die.
    public Dice(int maxInt, int dieType){
        super();
        whoodat = roll(maxInt, dieType); 
        System.out.println(whoodat);
    }
//Constructor to create each Dice object. You must pass in the max sides of
 //the dice and the type of dice you want to roll (how it's weighted).
    public static void main(String[] args){
        Dice jobby = new Dice(4000, 1);
        Dice cappy = new Dice(9000, 2);
        Dice pappy = new Dice(20, 3);
//This is jobby cappy and pappy, testers for the program.