en java cualquier variable abstracta allí? trabajé estas variables abstractas en el constructor soy nort sure pero creo que el constructor admite variables estáticas.pls aclarar mi duda¿Hay alguna variable abstracta en java?
Respuesta
En Java, las clases y los métodos pueden ser abstractos. Las declaraciones de variables no pueden. Sin embargo, puede tener declaraciones de variables cuyos tipos sean abstractos. Ver ejemplo:
listas specifacationpublic abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
Soy Java principiante. Cómo es esto permitido >> instancia pública de MyClass; // permitido . ¿No es esa la creación de instancia de una clase abstracta? – goldenmean
@goldenmean Aún no está instanciado. instancia pública de MyClass = new MyClass() arrojaría errores. (si MyClass es abstracto) –
el lenguaje de 7 tipos de variables:
- variables de clase - declarados como static dentro de una declaración de la clase
- variables de instancia - dentro de una declaración de clase sin usar la palabra clave estática
- componentes de matriz - como
i[2]
cuando creamos una matriz comoint[] i= new int[5]
- método Parámetros de - Nombre valores de los argumentos pasados a un método
- parámetros de constructor - valores de nombre de argumento pasado a una constructor
- excepción-manejador de parámetros - creado cada tiempo se detecta una excepción
- variables locales - declaradas en un bloque (
{ }
) o para la declaración
Se pueden utilizar todos los tipos de variables (excepto # 4) en un constructor:
class Demo {
static int demo1 = 0; // class variable
int[] demo2 = new int[5]; // instance variable
Demo(int demo3) { // constructor parameter
try {
int demo4 = // local variable
demo2[2]; // array component
} catch(RuntimeException demo5) { // exception-handler parameter
}
demo2 = new int[]{Demo.demo1}; // using class and instance variable
// in a constructor
}
int method(int demo6) { // method parameter
}
}
El abstract
palabra clave no está permitido por la declaración de variables.
Hay dos formas de definir variables abstractas en java sin usar palabras clave abstractas.
primera manera: Definir un constructor con parámetros en la clase abstracta, algo así como:
public abstract class TransactionManager {
private String separator;
public TransactionManager(String separator) {
this.separator = separator;
}
}
Al definir un constructor parametrizado en una clase abstracta, las subclases se ven obligados a definir sus propios constructores y llamar a la super constructor, por lo tanto, pasando su propio SEPARATOR.
segunda manera: Definir la propiedad como método de obtención, algo así como:
public abstract class TransactionManager {
public abstract String getSeparator();
}
De esta manera el valor de la propiedad SEPARADOR se delega a ser definido por cada clase concreta.
abstracto es un modificador no acceso en Java aplicable para las clases, métodos, pero no las variables.Se utiliza para lograr la abstracción, que es uno de los pilares de la Programación Orientada a Objetos.
¿Tiene algo nuevo en su respuesta que no se mencionó en respuestas anteriores? –
- 1. ¿Hay alguna forma de fundición "tipo segura" en Java?
- 2. Heredar variable estática de la clase abstracta
- 3. ¿Hay alguna biblioteca ActiveResource como para Java?
- 4. ¿Hay alguna aplicación de kernel/escritorio Java?
- 5. Java - ¿Clase abstracta para contener variables?
- 6. ¿Hay alguna ventaja en tener una clase abstracta y una interfaz?
- 7. ¿Hay alguna clase en Java similar a android.os.Handler en Android?
- 8. ¿Hay alguna forma de anular una variable booleana devuelta?
- 9. ¿Hay alguna manera de probar una variable para "isForEachable"
- 10. C#: ¿Hay alguna forma de usar expresiones como variable/parámetro?
- 11. ¿Hay alguna manera de ver cuánta memoria usa una variable?
- 12. ¿Qué hay dentro de una variable de referencia en Java?
- 13. ¿Por qué no hay una variable estática local en Java?
- 14. Java Web Services/JAXB - Superclase abstracta
- 15. ¿Hay alguna alternativa para implementar Clone en Java?
- 16. ¿Hay alguna diferencia entre comillas simples y dobles en Java?
- 17. ¿Hay alguna forma de agrupar métodos en Java/Eclipse?
- 18. ¿hay alguna manera de usar tr /// (o equivalente) en java?
- 19. ¿Hay alguna diferencia entre x ++ y ++ x en java?
- 20. ¿Hay alguna forma de compilar código Java en una DLL?
- 21. ¿hay alguna forma en java para crear un esquema xsd?
- 22. ¿Hay alguna forma de hacer bitwise-O enumeraciones en Java?
- 23. ¿Hay alguna función para truncar un doble en java?
- 24. ¿Hay alguna manera de imitar o en genéricos de Java
- 25. ¿Hay alguna forma de detectar un lenguaje RTL en Java?
- 26. ¿Hay alguna forma de insertar un navegador en Java?
- 27. Iteradores en C++ (stl) vs Java, ¿hay alguna diferencia conceptual?
- 28. ¿Hay alguna manera de implementar tipos algebraicos en Java?
- 29. Java clase abstracta implementa la interfaz
- 30. Inyección de Java EE 6 en la clase abstracta
Si una variable puede ser 'abstracta', ¿qué crees que significa eso? Tal vez deberías investigar tu motivación. – polygenelubricants