Hola amigo,
En las clases abstractas igual debes definir tus métodos, pero de manera abstracta, te dejo un ejemplo
abstract class Foro{
public abstract void PublicarPost();
}
class UnderForo extends Foro{
public void PublicarPost() {
System.out.println("Bla bla bla...");
}
}
Fíjate que en la clase abstracta el método no lleva corchetes de llave ( { } ) y se terminan con punto y coma ( ; ), pero una vez 'extiendes' una clase de tu clase abstracta, en ese momento le das el contenido o la lógica a la función con sus corchetes de llave como de costumbre.
Observación: Debes mantener la integridad si agregas parámetros de entrada, si los defines en la clase abstracta debes utilizar los mismo en el mismo orden una vez la extiendas.
Espero te sirva la explicación
Un saludo!