java - diferença única entre classe abstrata e classe concreta
Eu sei algumas diferenças entre classe abstrata e classe concreta. Eu sei que você não pode criar uma instância com a classe abstrata, ao contrário da classe concreta, a classe abstrata pode ter métodos 'abstratos'.
Mas eu tenho um exemplo como o seguinte. Muitas vezes, vemos os exemplos a seguir no trabalho. Vou apenas pular alguns métodos comuns que podem ser definidos na classe Parent.
public abstract class Parent {
public void init() {
doInit();
}
public abstract void doInit();
}
public class Child extends Parent {
public void doInit() {
// implementation
}
}
Eu acho que podemos fazer a mesma coisa com uma classe concreta como a seguinte.
public class Parent {
public void init() {
doInit();
}
public void doInit() {
// Empty
}
}
Estou curioso para ver se existe alguma situação única que temos que usar a classe abstrata. Existe alguma diferença significativa durante o tempo de execução com o exemplo acima?
Obrigado.