Wie definiert man eine Klasse als Übergabeparameter?

Wie definiert man eine Klasse als Übergabeparameter innerhalb einer Funktion korrekt?

       public func() {
              Thread thread = new Thread( 
                 new class Object implements Runnable {
                     @Override
                     public void run() {
                  // irgendetwas
              });
       }

Häh?

Meinst du sowas?

public void func() {
   new Thread(new Runnable() { 
        public void run() {
            System.out.println("Hi!");
        }
   }).start();
}

In diesem speziellen Fall und mit Java 8 kannst du dir das auch sparen:

public void func() {
    new Thread(() -> System.out.println("Hi!")).start();
}