2011-05-02 32 views
34

Co to jest "podklasa" w języku Java?Co to jest podklasa

Wiem o klasach i metodach, ale nie wiem o podklasach.

+1

... co to jest Methos? – Mehrdad

+1

mennice, myślę? ... –

+7

czy to naprawdę strona, na której wyjaśniamy, czym jest podklasa i dziedziczenie? Naprawdę? –

Odpowiedz

72

Podklasa to klasa obejmuje inną klasę.

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

public class SubClass extends BaseClass{ 
} 

Potem ...

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

wypisze:

foo 

To działa, ponieważ podklasa dziedziczy funkcjonalność klasy to rozciąga.

+2

To, co nazwano dziedziczeniem w Javie? –

+8

+1 Dla prostego wyjaśnienia, z którym każdy może się odnosić. – rzetterberg

2

Podklasa w języku Java jest klasą dziedziczącą po innej klasie.

Dziedziczenie to sposób na zajęcia, które dodają wyspecjalizowane zachowanie na wierzchu uogólnionego zachowania. Jest to często reprezentowane przez wyrażenie "jest".

Na przykład: Triangle to Shape, więc może być sens zaimplementowanie klasy Shape i dziedziczenie z niej klasy Triangle. W tym przykładzie, Shape jest nadklasą Triangle i Triangle jest podklasą Shape

2

Jeśli masz następujące elementy:

public class A 
{ 
} 

public class B extends A 
{ 
} 

następnie B jest podklasą A, B dziedziczy A. Przeciwieństwem będzie nadklasa.

+0

Czy klasa publiczna B: A oznacza, że ​​klasa publiczna B rozszerza A ?? –

+0

tak, dokładnie. Dostosuję. – Femaref

3

Podklasa należy do klasy, ponieważ Java jest językiem programowania.

3

Jest to klasa, która rozszerza kolejną klasę.

przykład wzięty z http://www.java-tips.org/java-se-tips/java.lang/what-is-a-java-subclass.html, Cat jest klasą sub 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

Podklasa jest coś, co rozszerza funkcjonalność istniejącej klasy. To znaczy.

Nadklasa - opisuje kategorii pięciogwiazdkowy obiektów:

public abstract class Fruit { 

    public abstract Color color; 

} 

Subclass1 - opisuje cechy poszczególnych obiektów Owoc:

public class Apple extends Fruit { 

    Color color = red; 

} 

Subclass2 - opisuje cechy poszczególnych obiektów Owoc:

public class Banana extends Fruit { 

    Color color = yellow; 

} 

Słowo kluczowe "abstrakcyjne" w superklasce oznacza, że klasa zdefiniuje tylko obowiązkowe informacje, które musi posiadać każda podklasa, np. kawałek owocu musi mieć kolor, dlatego jest definiowany w superklasie, a wszystkie podklasy muszą "odziedziczyć" ten atrybut i zdefiniować wartość opisującą dany obiekt.

Czy to ma sens?

+0

Czerwone jabłko? Haha –

2

Pomyśl o klasie jako o opisie członków zbioru rzeczy. Wszyscy członkowie tego zestawu mają wspólne cechy (metody i właściwości).

Podklasa jest klasą opisującą elementy określonego podzestawu oryginalnego zestawu. Mają wiele cech charakterystycznych głównej klasy, ale mogą mieć właściwości lub metody, które są unikalne dla członków podklasy.

Deklarujesz, że jedna klasa jest podklasą innej przez słowo kluczowe "extends" w Javie.

public class B extends A 
{ 
... 
} 

B jest podklasą A. instancji klasy B będzie automatycznie wykazują wiele takich samych właściwościach jak instancje klasy A.

Jest to główny pojęcie dziedziczenia w programowaniu obiektowym .

+0

Zatem klasa abstrakcyjna musi zawierać co najmniej 1 informację obowiązkową, którą musi posiadać każda podklasa? w tym metody? ALE może również zawierać własne informacje i metody, których nie mam obowiązku używać (ale nadal jest to opcja)? –

+0

Nie sądzę, że klasy abstrakcyjne muszą mieć w szczególności jakieś właściwości. Czasem tylko to, że klasa dziedziczy z klasy abstrakcyjnej, jest wszystkim, czego potrzebujesz. (patrz "polimorfizm") – bpanulla

0

Podklasa to mały plik programu, który rozciąga się od innej klasy. Na przykład tworzysz klasę o samochodach w ogóle i masz podstawowe informacje, które są prawdziwe dla wszystkich samochodów z twoimi konstruktorami, a potem masz klasę, która rozciąga się od tej na bardziej konkretnym samochodzie lub linii samochodów, które miałyby nowe zmienne/metody . Widzę, że masz już mnóstwo przykładów kodu z góry, zanim dostanę to, ale mam nadzieję, że ten opis pomoże.

+0

Jednak niekoniecznie musi to być własny plik. –