[Java] Tablica z dwoma typami danych.

Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[Java] Tablica z dwoma typami danych.

Post autor: lightinside »

Hej. Mam taki problem, jak stworzyć tablicę w której były by obiekty różnych klas, które jednak dziedziczą po tej samej?

Mam mieć w tablicy studenta zaocznego i studenta dziennego onidziedziczą po studencie.
Ostatnio zmieniony 16 cze 2014, o 17:55 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Java] Tablica z dwoma typami danych.

Post autor: Afish »

Utworzyć tablicę przechowującą elementy klasy bazowej.
ravgirl
Użytkownik
Użytkownik
Posty: 171
Rejestracja: 29 gru 2013, o 17:41
Płeć: Kobieta
Lokalizacja: Pruszków
Pomógł: 64 razy

[Java] Tablica z dwoma typami danych.

Post autor: ravgirl »

Wystarczy, że stworzysz tablicę typu Student, stworzysz obiekty klas potomnych (student dzienny, student zaoczny) i wstawisz je do tej tablicy.
Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[Java] Tablica z dwoma typami danych.

Post autor: lightinside »

A jak zrobić by dało radę przechowywać w tej tablizy imie przykładowo?

Kod: Zaznacz cały


import student.*;
public class aplikacja{


public static void main(String args[])
	{
		student[][] a = new student[3][9];
	studentdzienny st1 = new studentdzienny();
	studentzaoczny st2 = new studentzaoczny();
	a[0][0]=st1.imie;
	a[1][0]=st2;
	System.out.println("Student to "+a[1][0]);
	}

}


To jest moja główna klasa i tu wywołuje trzy klasy. W studencie mam pole imie student dzienny je dziedziczy.
Gdy chce je zapisać do tablicy to mam taki błąd:

Kod: Zaznacz cały

C:JAVA PROGRAMStudenci>javac *.java
aplikacja.java:10: error: incompatible types
        a[0][0]=st1.imie;
                   ^
  required: student
  found:    String
1 error
Jak to naprawić? Chce w jakiś sposób wyświetlać i zapisywać do tablicy, też imie etc danego studenta. gdy pisałam:

Kod: Zaznacz cały


 a[0][0]=st1;

Dostawałam tylko nazwę klasy i chyba adres
ravgirl
Użytkownik
Użytkownik
Posty: 171
Rejestracja: 29 gru 2013, o 17:41
Płeć: Kobieta
Lokalizacja: Pruszków
Pomógł: 64 razy

[Java] Tablica z dwoma typami danych.

Post autor: ravgirl »

Ta tablica może zawierać w sobie tylko obiekty typu student, albo dziedziczące po nim. Nie może zawierać Stringów - a takiego typu jest imię. Dlaczego chcesz wstawić tam imię? Czemu tablica jest dwuwymiarowa? Przecież jeśli zrobisz tablicę jednowymiarową (dla uproszczenia) i wstawisz po prostu studenta, to możesz się odwołać do imienia studenta na pozycji 0 w tablicy przez a[0].imie
ODPOWIEDZ