Вопрос на засыпку

Кто может, не залезая в ИДЕЮ, сказать, что выдаст в консоль следующий код и почему? :)

class Feline {
    public String type = "f ";
    public Feline() {
        System.out.print("feline ");
    }
}
public class Cougar extends Feline {
    public Cougar() {
        System.out.print("cougar ");
    }
    public void go() {
        type = "c ";
        System.out.print(this.type + super.type);
    }
    public static void main(String[] args) {
        new Cougar().go();
    }
}

package com.javarush.task.task08.task0820;

В IDE очень часто такая беда, из-за это не компилируется код (в дженериках отсылает к объектам других задач, как отключить это?), что это такое?


На всякий случай, публикую код, я не понимаю, что с ним не так…

public class Solution {
    public static void main(String[] args) {
        Set<Cat> cats = createCats();
        Set<Dog> dogs = createDogs();

        Set<Object> pets = join(cats, dogs);
        printPets(pets);

        removeCats(pets, cats);
        printPets(pets);
    }

    public static Set<Cat> createCats() {
        HashSet<Cat> result = new HashSet<Cat>();
        //напишите тут ваш код
        result.add(new Cat());
        result.add(new Cat());
        result.add(new Cat());
        result.add(new Cat());

        return result;
    }


    public static Set<Dog> createDogs() {
        //напишите тут ваш код
        HashSet<Dog> dogs = new HashSet<Dog>();
        dogs.add(new Dog());
        dogs.add(new Dog());
        dogs.add(new Dog());

        return dogs;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
        Set<Object> pets = new HashSet<Object>();
        //напишите тут ваш код
        pets.add(dogs);
        pets.add(cats);
        return pets;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats) {
        //напишите тут ваш код
        pets.removeAll(cats);
        }

    public static void printPets(Set<Object> pets) {
        //напишите тут ваш код
        for (Object s : pets) {
            System.out.println(s);

        }

        //напишите тут ваш код
        public static class Cat {

        }

        public static class Dog {

        }
    }
}
  • ,

level05.lesson05.task02

Причесываю код этого задания, проштудировал Шилдта, stackoverflow и прочие форумы посмотрел по Java.
Специально вынес код в Eclipse. Эта IDE за шаг вправо — шаг влево сразу «к стенке» ставит.
Компилируется.
Выполняется.
Ни фига не выдает в консоли )))
Очень хочу досконально разобраться, в чем проблема.

package javarush;

public class Cat {
	public String name;
	public int age; 
	public int weight; 
	public int strength;
	public double force;
	
	public Cat(int x, int y, int z){
		age = x;
		weight = y;
		strength = z;
		force = (age*0.2)+(weight*0.4)+(strength*0.4);
	}
	
	public boolean fight (Cat cat){
		return (this.force > force);
	}

}

public class CatFight {

	public static void main(String[] args) {
		
		Cat cat1 = new Cat(5, 6, 10);
		Cat cat2 = new Cat(4, 8, 8);
		
		if (cat1.fight(cat2))
			System.out.println("Кот 1 победил");
		if (cat2.fight(cat1))
			System.out.println("Кот 2 победил");
		if (cat1.force == cat2.force)
			System.out.println("Силы котов равны");

	}

}