2011-05-02 24 views
34

¿Qué es una "subclase" en java?¿Qué es una subclase

Sé sobre clases y métodos, pero no sé sobre subclases.

+1

... ¿qué es Methos? – Mehrdad

+1

mentas, ¿no? ... –

+7

¿Es este el sitio donde explicamos qué subclase y herencia es? De Verdad? –

Respuesta

72

Una subclase es una clase que se extiende otra clase.

public class BaseClass{ 
    public String getFoo(){ 
     return "foo"; 
    } 
} 

public class SubClass extends BaseClass{ 
} 

Entonces ...

System.out.println(new SubClass().getFoo()); 

imprimirá:

foo 

Esto funciona porque una subclase hereda la funcionalidad de la clase que se extiende.

+2

Esto que llama herencia en Java? –

+8

+1 Para una explicación directa con la que cualquiera pueda identificarse. – rzetterberg

2

Una subclase en Java, es una clase que hereda de otra clase.

La herencia es una forma para que las clases agreguen comportamientos especializados en la parte superior del comportamiento generalizado. Esto a menudo se representa con la frase "es una" relación.

Por ejemplo, Triangle es Shape, por lo que podría tener sentido implementar una clase Shape y heredar la clase Triangle. En este ejemplo, Shape es la superclase de Triangle y Triangle es la subclase de Shape

2

Si usted tiene los siguientes:

public class A 
{ 
} 

public class B extends A 
{ 
} 

continuación B es una subclase de A, B hereda de A. Lo opuesto sería superclase.

+0

¿La clase pública B: A significa que la clase pública B se extiende A ?? –

+0

sí, exactamente. Me ajustaré. – Femaref

3

Subclase es Clase, como Java es Lenguaje de programación.

3

Es una clase que amplía otra clase.

ejemplo tomado de http://www.java-tips.org/java-se-tips/java.lang/what-is-a-java-subclass.html, Cat es una subclase de 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(); 
    } 
} 
9

Una subclase es algo que se extiende la funcionalidad de su clase existente. Es decir.

Superclase - describe la CATEGORIA de objetos:

public abstract class Fruit { 

    public abstract Color color; 

} 

Subclass1 - describe los atributos de los objetos de frutas individuales:

public class Apple extends Fruit { 

    Color color = red; 

} 

Subclass2 - describe los atributos de los objetos de frutas individuales:

public class Banana extends Fruit { 

    Color color = yellow; 

} 

La palabra clave 'abstracta' en la superclase significa que la clase solo definirá la información obligatoria que debe tener cada subclase, es decir, una fruta debe tener un color, por lo que se define en la superclase y todas las subclases deben 'heredar' ese atributo y definir el valor que describe el objeto específico.

¿Tiene sentido?

+0

¿Manzana roja? Haha –

2

Piense en una clase como una descripción de los miembros de un conjunto de cosas. Todos los miembros de ese conjunto tienen características comunes (métodos y propiedades).

Una subclase es una clase que describe los miembros de un subconjunto particular del conjunto original. Comparten muchas de las características de la clase principal, pero pueden tener propiedades o métodos que son únicos para los miembros de la subclase.

Usted declara que una clase es una subclase de otra a través de la palabra clave "extends" en Java.

public class B extends A 
{ 
... 
} 

B es una subclase de A. Las instancias de la clase B exhibirá automáticamente muchas de las mismas propiedades que las instancias de la clase A.

Este es el concepto principal de herencia en la programación orientada a objetos .

+0

Entonces, ¿una clase abstracta debe contener al menos 1 información obligatoria que debe tener cada subclase? incluyendo métodos? PERO también puede contener su propia información y métodos que no estoy obligado a usar (¿pero todavía son una opción)? –

+0

No creo que las clases abstractas necesiten tener propiedades en particular. A veces, solo el hecho de que una clase hereda de una clase abstracta es todo lo que quieres. (ver "polimorfismo") – bpanulla

0

Una subclase es un archivo pequeño de un programa que se extiende desde alguna otra clase. Por ejemplo, usted hace una clase sobre autos en general y tiene información básica que es válida para todos los autos con sus constructores y cosas así, usted tiene una clase que se extiende desde la de un automóvil o línea de automóviles más específica que tendría nuevas variables/métodos . Veo que ya tienes muchos ejemplos de código de arriba en el momento en que puedo publicar esto, pero espero que esta descripción te ayude.

+0

Sin embargo, no necesariamente tiene que ser un archivo propio. –

Cuestiones relacionadas