Método abstrato

Uma classe abstrata pode conter um ou mais métodos abstratos. Um método abstrato não cria uma definição, mas apenas uma declaração de um método que deverá ser implementado em uma classe derivada. Se esse método não for implementado na classe derivada, esta permanece como uma classe abstrata mesmo que não tenha sido assim declarada explicitamente. Por exemplo, a compilação de

abstract class AbsClass {
  abstract void meth();
}

class DerClass extends AbsClass {
  public static void main(String[] args) {
    DerClass obj = new DerClass();
  }
}

gera dois erros:

AbsClass.java:5: class DerClass must be declared abstract.
         It does not define void meth() from class AbsClass.
class DerClass extends AbsClass {
      ^
AbsClass.java:7: class DerClass is an abstract class.
         It can't be instantiated.
    DerClass obj = new DerClass();
                   ^
2 errors

No entanto, se for incluída uma implementação de meth() na classe derivada:

abstract class AbsClass {
  abstract void meth();
}

class DerClass extends AbsClass {
  void meth() { }
  public static void main(String[] args) {
    DerClass obj = new DerClass();
  }
}

então nenhum erro de compilação ocorre.


© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP

Last modified: Mon Sep 27 10:09:38 EST 1999