Sì, a dire il vero ho un'altra sottoclasse di 
Contribuente:
PersonaFisica:
package contribuente.persone;
import contribuente.*;
public class PersonaFisica extends Contribuente
{
    private String nome;
    private String cognome;
    private String codiceFiscale;
    
    public PersonaFisica(double entrate, double uscite, String codiceFiscale, String nome, String cognome) 
    {
        super(entrate, uscite);
        this.codiceFiscale = codiceFiscale;
        this.nome = nome;
        this.cognome = cognome;
    }
    @Override
    public String id() 
    {
        return codiceFiscale;
    }
    @Override
    protected double fattoreDiSconto() 
    {
        return 0.8;
    }
    @Override
    protected double aliquota() 
    {
        if(imponibile() <= 5000)
            return 0;
        else
            return 0.3;
    }
    
    public String getNome()
    {
        return nome;
    }
    
    public String getCognome()
    {
        return cognome;
    }
}
E ho anche la classe 
Utilita contenente il metodo in questione che, però, non estende 
Contribuente:
package contribuente.utilita;
import contribuente.*;
import contribuente.aziende.Azienda;
import contribuente.persone.PersonaFisica;
public class Utilita 
{
   public static Azienda[] aziendeDebitrici(Contribuente[] debitori) 
   {
     ...
andbin ha scritto:
 tramite l'operatore instanceof puoi verificare se l'oggetto i-esimo è un Azienda.
In questo modo?
for(i = 0; i < debitori.length; i++)
       {
           if(debitori[i] instanceof Azienda) 
              ...