Почему выдает ошибку java в примере иерархии?
Всё дело в том, что вы пишете tuzik.age = 3; не в методе, а в объявлении класса. Так делать нельзя. Как вам уже советовали, отформатируйте код, станет понятнее. Сейчас вы сделали следующее:
* объявили класс Pet
* объявили внутри него класс Dog
* внутри Dog объявили две переменные типа Dog - tuzik и sharik
* продолжили работать с этими переменными в теле класса. Тут ошибка, так делать нельзя. 
* далее объявили внутри Pet класс Master.
 Вообще, логическая ошибка у вас пошла со второго пункта. Dog надо делать отдельным файлом. И Master тоже. Переменные tuzik и sharik внутри Dog быть не должны, надо их отдельно куда-нибудь писать.
Примерно так://Pet.java
public class Pet{
...
}

//Dog.java
public class Dog extends Pet{
...
}

//Master.java
public class Master{
...
}

//Main.java
public class Main{
    public static void main(String[] args){
        Dog tuzik = new Dog();
        ...
    }
}
Запомните сначала ссылка на объект, потом его его переменная.
Есть собака(объект) по кличке Тузик(ссылка на объект), ей три года(переменная класса).
tuzik.age = 3