Che cos'è una "sottoclasse" in java?Che cos'è una sottoclasse
Conosco classi e metodi, ma non conosco le sottoclassi.
Che cos'è una "sottoclasse" in java?Che cos'è una sottoclasse
Conosco classi e metodi, ma non conosco le sottoclassi.
Una sottoclasse è una classe che estende un'altra classe.
public class BaseClass{
public String getFoo(){
return "foo";
}
}
public class SubClass extends BaseClass{
}
Poi ...
System.out.println(new SubClass().getFoo());
stamperà:
foo
Questo funziona perché una sottoclasse eredita la funzionalità della classe si estende.
Questo che si chiama ereditarietà in Java? –
+1 Per una spiegazione semplice a cui tutti possono fare riferimento. – rzetterberg
Una sottoclasse in java, è una classe che eredita da un'altra classe.
L'ereditarietà è un modo per le classi di aggiungere un comportamento specializzato ontop di comportamento generalizzato. Questo è spesso rappresentato dalla frase "è una" relazione.
Ad esempio, un Triangle
è un Shape
, quindi potrebbe avere senso implementare una classe di forma e avere ereditato dalla classe Triangle. In questo esempio, è Shape
superclasse di Triangle
e Triangle
è la sottoclasse di Shape
Se si hanno le seguenti:
public class A
{
}
public class B extends A
{
}
poi B
è una sottoclasse di A
, B
eredita da A
. Il contrario sarebbe la superclasse.
La classe pubblica B: A significa che la classe pubblica B estende A ?? –
sì, esattamente. Mi adeguerò. – Femaref
La sottoclasse è di classe come Java è per Linguaggio di programmazione.
È una classe che estende un'altra classe.
esempio preso dalla http://www.java-tips.org/java-se-tips/java.lang/what-is-a-java-subclass.html, Cat è una classe secondaria di Animal :-)
public class Animal {
public static void hide() {
System.out.println("The hide method in Animal.");
}
public void override() {
System.out.println("The override method in Animal.");
}
}
public class Cat extends Animal {
public static void hide() {
System.out.println("The hide method in Cat.");
}
public void override() {
System.out.println("The override method in Cat.");
}
public static void main(String[] args) {
Cat myCat = new Cat();
Animal myAnimal = (Animal)myCat;
myAnimal.hide();
myAnimal.override();
}
}
Una sottoclasse è qualcosa che estende la funzionalità della classe esistente. Cioè
Superclass - descrive la catagory di oggetti:
public abstract class Fruit {
public abstract Color color;
}
Subclass1 - descrive gli attributi dei singoli oggetti di frutta:
public class Apple extends Fruit {
Color color = red;
}
Subclass2 - descrive gli attributi dei singoli oggetti di frutta:
public class Banana extends Fruit {
Color color = yellow;
}
La parola chiave "abstract" nella superclasse significa che la classe definirà solo le informazioni obbligatorie che ciascuna sottoclasse deve avere, ad esempio un pezzo di frutta deve avere un colore, quindi è definito nella super classe e tutte le sottoclassi devono "ereditare" quell'attributo e definire il valore che descrive l'oggetto specifico.
Ha senso?
Mela rossa? Haha –
Pensa a una classe come descrizione dei membri di un insieme di cose. Tutti i membri di quel set hanno caratteristiche comuni (metodi e proprietà).
Una sottoclasse è una classe che descrive i membri di un particolare sottoinsieme del set originale. Condividono molte delle caratteristiche della classe principale, ma possono avere proprietà o metodi che sono unici per i membri della sottoclasse.
Si dichiara che una classe è sottoclasse di un'altra tramite la parola chiave "extends" in Java.
public class B extends A
{
...
}
B è una sottoclasse di A. Le istanze della classe B esporrà automaticamente molte delle stesse proprietà come istanze della classe A.
Questo è il concetto principale della eredità nella programmazione orientata agli oggetti .
Quindi una classe astratta deve contenere almeno 1 informazione obbligatoria che deve avere ciascuna sottoclasse? compresi i metodi? MA può anche contenere le proprie informazioni e metodi che non sono obbligato a usare (ma sono ancora un'opzione)? –
Non penso che le classi astratte debbano avere proprietà in particolare. A volte solo il fatto che una classe erediti da una classe astratta è tutto ciò che vuoi. (vedi "polimorfismo") – bpanulla
Una sottoclasse è un file piccolo di un programma che si estende da qualche altra classe. Ad esempio, fai un corso sulle macchine in generale e hai informazioni di base valide per tutte le auto con i tuoi costruttori e roba, quindi hai una classe che si estende da quella su una macchina o una linea di automobili più specifiche che avrebbero nuove variabili/metodi . Vedo che hai già un sacco di esempi di codice da quando ho postato questo post, ma spero che questa descrizione sia d'aiuto.
Tuttavia non deve necessariamente essere un proprio file. –
... che cos'è Methos? – Mehrdad
mente penso? ... –
questo è davvero il sito in cui spieghiamo cos'è la sottoclasse e l'ereditarietà? Veramente? –