Pregunta Definir una clase abstracta sin ningún método abstracto


¿Puedo definir una clase abstracta sin agregar un método abstracto?


73
2018-01-27 00:11


origen


Respuestas:


Por supuesto.

Declarar un resumen de clase solo significa que no permite que se haga una instancia por sí mismo.

Declarar un método abstracto significa que las subclases deben proporcionar una implementación para ese método.

Los dos son conceptos separados, aunque obviamente no se puede tener un método abstracto en una clase no abstracta. Incluso puede tener clases abstractas con final métodos, pero nunca al revés.


124
2018-01-27 00:15



Sí, tú puedes hacerlo. ¿Por qué no tratas de hacer eso?


14
2018-01-27 00:13



Sí tu puedes. La clase abstracta utilizada en Java significa que no puede crear un objeto de la clase. Y un método abstracto las subclases deben proporcionar una implementación para ese método.

Entonces puedes definir fácilmente una clase abstracta sin ningún método abstracto.

Como por ejemplo :

public abstract class AbstractClass{

    public String nonAbstractMethodOne(String param1,String param2){
        String param = param1 + param2;
        return param;
    }

    public static void nonAbstractMethodTwo(String param){
        System.out.println("Value of param is "+param);
    }
}

Esto esta bien.


8
2017-09-20 17:33



SÍ Puede crear clases abstractas sin ningún método abstracto. El mejor ejemplo de clase abstracta sin método abstracto es HttpServlet.
Método abstracto es un método que no tiene cuerpo. Si declaraste al menos un método en la clase, la clase debe declararse como un resumen, es obligatorio PERO si declaraste que la clase abstracta no es obligatoria, declaraste el método abstracto dentro de la clase.

No puede crear objetos de clase abstracta, lo que significa que no se puede crear una instancia.


5
2018-01-07 08:31



Sí, puede declarar una clase que no puede crear instancias por sí misma con solo métodos que ya tienen implementaciones. Esto sería útil si desea agregar métodos abstractos en el futuro, o si no desea que la clase sea instanciada directamente aunque no tenga propiedades abstractas.


4
2018-01-27 00:18



Sí, podemos tener una clase abstracta sin métodos abstractos ya que ambos son conceptos independientes. Declarar un resumen de clase significa que no se puede crear una instancia por sí mismo y solo se puede clasificar. Declarar un método abstracto significa que el Método se definirá en la subclase.


3
2018-01-14 02:18



Si tu puedes hacerlo.

declarar clase abstracta significa que la clase no será instanciada por ninguna otra clase.

y debe haber al menos un método abstracto dentro de eso y el significado de que puede declarar el método abstracto en esa clase si no está declarando el método que está bien.

ejemplo:

public abstract class abs {

    protected int cx = 0, cy = 0;

    public void p() {
        System.out.print("hello");
    }
}

esto funcionará con seguridad.


2
2017-08-21 05:07



Sí, puedes definir una clase abstracta sin un método abstracto. Sin embargo, si no hay un método en su interior, es mejor que vaya con una interfaz


2
2018-01-27 00:15



sí, podemos declarar una clase abstracta sin ningún método abstracto. el propósito de declarar una clase como abstracto no es instanciar la clase.

entonces dos casos

1) clase abstracta con métodos abstractos.

este tipo de clases, debemos heredar una clase de esta clase abstracta y debemos anular los métodos abstractos en nuestra clase, ex: clase GenricServlet

2) clase abstracta sin métodos abstractos.

este tipo de clases, debemos heredar una clase de esta clase abstracta, ex: clase HttpServlet El propósito de hacerlo es a pesar de que si no implementa su lógica en la clase infantil puede obtener la lógica padre

por favor, compruebe el código fuente de HttpServlet


2
2018-04-20 17:32