Class declaration order in java

In general, class declarations can include these components, in order:

Example

project/
├── Dog.java
└── Main.java
//Dog.java

// Superclass
class Animal {
    public void eat() {
        System.out.println("Animal is eating...");
    }
}
// Interface 1
interface Pet {
    void play();
}
// Interface 2
interface Trainable {
    void train();
}

// Modifier: public
public class Dog extends Animal implements Pet, Trainable {
    // Fields (attributes)
    private String name;
    private int age;
    // Constructor
    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }
    // Method from Pet interface
    @Override
    public void play() {
        System.out.println(name + " is playing fetch!");
    }
    // Method from Trainable interface
    @Override
    public void train() {
        System.out.println(name + " is learning new tricks!");
    }
    // Own method
    public void bark() {
        System.out.println("Woof!");
    }
}
//Main.java

public class Main {
    public static void main(String[] args) {

        Dog dog = new Dog("Buddy", 3);

        dog.eat();
        dog.play();
        dog.train();
        dog.bark();
    }
}