in java qualsiasi variabile astratta lì? ho lavorato a queste variabili astratte in costruttore sono sicuro, ma penso che il costruttore supporti variabili statiche.pls chiarisca il mio dubbioC'è qualche variabile astratta in java?
risposta
In Java solo classi e metodi possono essere astratti. Le dichiarazioni variabili non possono. Tuttavia puoi avere dichiarazioni variabili di tipi astratti. Vedi l'esempio:
public abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
Sono un principiante Java. Come è permesso? >> istanza pubblica MyClass; // permesso . Non è questa la creazione di un'istanza di una classe astratta? – goldenmean
@goldenmean Non è ancora stato istanziato. istanza pubblica MyClass = new MyClass() genererebbe errori. (se MyClass è astratto) –
Il linguaggio Specifacation liste 7 tipi di variabili:
- variabili di classe - dichiarati come static all'interno di una dichiarazione di classe
- variabili di istanza - inserite in una dichiarazione di classe senza utilizzare la parola chiave statica
- componenti dell'array - come
i[2]
quando creiamo un array comeint[] i= new int[5]
- Parametri metodo - valori del nome argomento passato a un metodo
- parametri del costruttore - Valori nome argomento passato a un costruttore
- eccezione-handler parametro - creato ogni viene rilevata un'eccezione
- variabili locali - dichiarato in blocco (
{ }
) o per dichiarazione
È possibile utilizzare tutti i tipi di variabili (ad eccezione di 4 #) in un costruttore:
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
}
}
Il abstract
parola chiave non è consentito per la dichiarazione delle variabili.
Esistono due modi per definire le variabili astratte in java senza utilizzare una parola chiave astratta.
1 ° modo: Definire un costruttore con parametri nella classe astratta, qualcosa di simile:
public abstract class TransactionManager {
private String separator;
public TransactionManager(String separator) {
this.separator = separator;
}
}
Quando si definisce un costruttore parametrizzata in una classe astratta, le sottoclassi sono costretti a definire i propri costruttori e chiamare il super costruttore, quindi passando il proprio SEPARATORE.
2 ° modo: Definire la proprietà come metodo getter, qualcosa di simile:
public abstract class TransactionManager {
public abstract String getSeparator();
}
In questo modo il valore di SEPARATORE proprietà è delegata a essere definito da ciascuna classe concreta.
astratta è un modificatore non-accesso in java applicabile per le classi, i metodi ma non variabili.È usato per ottenere l'astrazione che è uno dei pilastri della programmazione orientata agli oggetti.
Hai qualcosa di nuovo nella tua risposta che non è stato menzionato nelle risposte precedenti? –
- 1. Istanziata classe astratta Java?
- 2. Java EE 6 Iniezione in classe astratta
- 3. Java Web Services/JAXB - Superclasse astratta
- 4. Creazione di un nuovo oggetto in classe astratta in Java
- 5. C'è qualche buon parser X12 in Java?
- 6. Qualche implementazione di Ordered Set in Java?
- 7. Node.js: C'è qualche documentazione sulla variabile process.env
- 8. Chiamare il costruttore della sottoclasse dalla classe astratta in Java
- 9. Possiamo creare una classe astratta statica pubblica in java?
- 10. classe non è astratta e non sostituisce l'errore in Java
- 11. Come testare la classe astratta in Java con JUnit?
- 12. cosa deve essere implementato da una classe astratta in java?
- 13. Sottoclasse una classe astratta C++ in Java usando JNI
- 14. variabile Inserire Java utilizzando Java in SQL
- 15. C'è qualche punto in una classe astratta che ha un costruttore pubblico invece di uno protetto?
- 16. statico variabile finale in Java
- 17. finale manipolazione variabile in Java
- 18. Derive classe astratta da classe non astratta
- 19. Java: utilizzo di una costante in una classe astratta che deve essere utilizzata anche da sottoclassi
- 20. variabile finale di metodi in Java
- 21. Porting Java App to Go - qualche consiglio?
- 22. Nome variabile Java Unicode
- 23. variabile Assegnare JavaScript per Java Variabile in JSP
- 24. inizializzazione variabile statica java
- 25. Java - Ascoltare cambiamento variabile
- 26. C'è qualche punto vero nell'interfaccia Java?
- 27. Qualche esperienza Java su Raspberry PI?
- 28. Parola chiave astratta in PHP
- 29. metodo generico in classe astratta
- 30. refactoring classe astratta in C#
Se una variabile può essere "astratta", cosa pensi che significhi? Forse dovresti investigare la tua motivazione. – polygenelubricants