Puedo implementar los métodos abstractos en una clase base abstracta de Una en java?

Si la respuesta es sí y no hay implementado un método abstracto en una clase base y hay una clase derivada de B a a B no es abstracto). Hace B todavía tiene que implementar la base de método abstracto?

InformationsquelleAutor Greg Oks | 2011-10-05

7 Comentarios

  1. 9

    Si entiendo tu pregunta correctamente, Sí.

    public abstract class TopClass {
      public abstract void methodA();
      public abstract void methodB();
    }
    
    public abstract class ClassA extends TopClass {
      @Override
      public void methodA() {
        //Implementation
      }
    }
    
    public class ClassB extends ClassA {
      @Override
      public void methodB() {
        //Implementation
      }
    }

    En este ejemplo, ClassB va a compilar. Se va a usar la propia aplicación de methodB(), y ClassA la implementación de methodA(). Usted también podría invalidar methodA() en ClassB si lo deseas.

    • +1, aunque propiamente hablando, creo que la respuesta debe ser «Sí y No», dado que el OP en realidad hizo dos preguntas (sólo respondió a la primera con palabras, pero la segunda con el código).
  2. 1

    Podría tener dos clases abstractas, X e y, donde Y se extiende X. En ese caso se podría tener sentido para el Y para implementar un método abstracto de X, siendo a la vez abstracto. Otra clase no abstracta Z podría extender Y. sin Embargo, en tu ejemplo, para aplicar sus propios métodos abstractos es una contradicción, el punto de hacer de ellas abstractas, es por lo que no proporcionan implementaciones, sólo se especifica lo que el método de las firmas debe ser similar.

    • En este caso, Y es abstracta, ya que podría haber otros métodos abstractos?
    • más probable.
  3. 1

    Las clases abstractas pueden tener métodos regulares. Si desea aplicar algunos de los métodos de la clase a, y dejar el resto de los métodos abstractos, usted puede hacer esto. Sin embargo, los métodos abstractos no tienen un cuerpo, por lo tanto, si usted marca un método como abstracto, entonces tiene que ser implementado por una subclase, no se puede implementar en la clase abstracta. Sin embargo, usted puede tener una clase abstracta sin métodos abstractos, entonces la subclase sólo necesita que se extienden.

  4. 1

    Sí, puede implementar los métodos abstractos en una clase que está declarada como abstracta. Si una clase se declara abstracta que no significa que todos los de su método debe ser abstracta.

    Para un hormigón sub clase, no es obligatorio para implementar los métodos abstractos que ya están implementados por uno de sus super-clase.

  5. 0

    No. Los métodos abstractos están destinados a ser definido por la subclase(es). Para obtener más información, consulte Resumen de los Métodos y Clases. Sin embargo, puede definir un método en la clase base y tienen la subclase(es) reemplazar, si es necesario.

  6. 0

    Sí, pero no puede ser abstracta más. Resumen significa que no hay ninguna aplicación.

    Lo que puedes hacer es:

    interface I {
        void meth();
    }
    
    //and
    
    abstract class A implements I {
        public void meth() {
            //implementation
        }
    }

    O:

    abstract class A {
    
        public abstract void meth();
    }
    
    //and
    
    abstract class B extends A {
        public void meth() {
        }
    }

    Si ya tiene una aplicación, se puede reemplazar en B (si B es de hormigón), porque B hereda de que la implementación predeterminada de A.

    • sin la implementación de la base de método?

Dejar respuesta

Please enter your comment!
Please enter your name here