Почему так работает? Смотри строку 26.
package com.javarush.task.task05.task0510;

public class Cat {

    private String name, address, color;
    private int age, weight;

    public void initialize(String name){
        this.name = name;
        color = "black";
        age = 1;
        weight = 2;
    }
    public void initialize(String name, int weight, int age){
        this.name = name;
        this.weight = weight;
        this.age = age;
        color = "black";
    }
    public void initialize(String name, int age){
        this.name = name;
        this.age = age;
        color = "black";
        weight = 2;
    }
    public void initialize(int weight, String color){
        this.color = color;
        this.weight = weight;
        age = 1;
    }


    public static void main(String[] args) {

    }
}
А так нет
package com.javarush.task.task05.task0510;

public class Cat {

    private String name, address, color;
    private int age, weight;

    public void initialize(String name){
        this.name = name;
        color = "black";
        age = 1;
        weight = 2;
    }
    public void initialize(String name, int weight, int age){
        this.name = name;
        this.weight = weight;
        this.age = age;
        color = "black";
    }
    public void initialize(String name, int age){
        this.name = name;
        this.age = age;
        color = "black";
        weight = 2;
    }
    public void initialize(String color, int weight){
        this.color = color;
        this.weight = weight;
        age = 1;
    }


    public static void main(String[] args) {

    }
}