Добрый день! Помогите разобраться с проблемой, ну точнее с тем, что я не могу понять....... Читаю книгу "Философия Java" главу про внутренне классы и дошел до такого момента.
interface Dest3{
    String readLable();
}
class Parcel10{
    public Dest3 dest3(final String dest, final double price){
        return new Dest3() {
            private double cost;
            {
                cost = Math.round(price);
                if (cost>100) System.out.println("TO MATCH!!!");
            }
            private String lable = dest;
            @Override
            public String readLable() {
                return lable;
            }
        };
    }
Ниже поясняется, что ... по сути инициализатор экземпляра является конструктором для анонимного внутреннего класса. Конечно, эта модель имеет свои ограничения; инициализаторы экземпляров не могут перегружаться, поэтому такой "конструктор" может быть только один. Я попробовал написать перегрузку подобного метода
public Dest3 dest2 (final int i, final double d){
        return new Dest3() {
            private int z = i;
            private double y = d;
            private double sum;
            {
                sum = z+y;
            }
            @Override
            public String readLable() {
                return "Ower"+" "+sum;
            }
        };
    }

    public Dest3 dest2 (final int i, final double d, final int q){
        return new Dest3() {
            private int z = i;
            private double y = d;
            private int a = q;
            private double sum;
            {
                sum = z+y+a;
            }
            @Override
            public String readLable() {
                return "Ower"+" "+sum;
            }
        };
    }

    public Dest3 dest2 (final int i, final double d, final int q,final int p){
        return new Dest3() {
            private int z = i;
            private double y = d;
            private int a = q;
            private int o = p;
            private double sum;
            {
                sum = z+y+a+p;
            }
            @Override
            public String readLable() {
                return "Ower"+" "+sum;
            }
        };
    }
Все прекрасно перегружается....
public class Ch10Semple6 {
    public static void main(String[] args) {
        Parcel10 parcel10 = new Parcel10();
        //Dest3 d = parcel10.dest3("USA",200);
        Dest3 owe1 = parcel10.dest2(10,20.5,15);
        Dest3 owe2 = parcel10.dest2(10,30.5);
        System.out.println(owe1.readLable());
        System.out.println(owe2.readLable());
Объясните, пожалуйста, новичку, в чем я не прав..... почему автор пишет, что инициализаторы не перегружаются.