Przykłady zadań
Dziedziczenie metod bez przedefiniowania i z przedefiniowaniem: rola słowa kluczowego super; przeciążanie metod.
Zdefiniuj metody pokaz() w klasach Towar1 (bez parametrów) i Towar2 (z parametrem), tak, aby poprawnie działała funkcja main w klasie Towar.
class Towar1
{ int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_);}
void pokaz() { /*...*/ } //na ekranie nazwa i cena
}
class Towar2 extends Towar1
{ int podatek;
//zdefiniuj konstruktor, który dziedziczy po Towar1 i
//przypisuje podatek_ do składowej podatek
//oraz metode pokaz, która na ekranie wyświetla dane: cena, //nazwa za pomocą dziedziczonej metody pokaz() oraz podatek //wraz przekazanym przez nagłówek łańcuchem zawierającym //menu- wykorzystaj do definicji słowo super
}
public class Towar
{ public static void main (String[] args)
{ Towar2 p2 = new Towar2(20,”ksiazka”,5);
Towar1 p1 = new Towar1(15, ”kalendarz”);
p2.pokaz(); //ksiazka, 20
p2.pokaz(”nazwa, cena, podatek: ”);
// nazwa, cena, podatek: ksiazka, 20
5
p1.pokaz(); } //kalendarz, 15
}
Polimorfizm czyli korzystanie z metod przedefiniowanych z identycznym nagłówkiem (nazwa, parametry, wynik zwracany przez return). Podaj kody funkcji podaj_typ() i pokaz() w klasie Towar1 i Towar2.
public interface Dane
{ String produkt ="Typ produktu: ";
public void podaj_typ(); }
class Towar1 implements Dane
{ int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_); }
void pokaz() { /*...*/ } //wyświetla nazwę i cenę
public void podaj_typ () {/*...*/ } //wyświetla typ produktu
}
class Towar2 extends Towar1
{ int podatek;
//zdefiniuj konstruktor inicjujący atrybuty obiektu, (zastosuj //słowo super) i przypisuje podatek_ do składowej podatek
//oraz dwie metody: pokaz(), podaj_typ ()
//pierwsza wyświetla na ekranie dane: cena, nazwa, za pomocą //dziedziczonej metody pokaz oraz podatek - do definicji //wykorzystaj słowo super, druga podaje typ produktu (implementacja metody podaj_typ())
} public class Towar
{ static void wyprowadz(/*podać typ parametru p*/)
{ p.pokaz();
p. podaj_typ (); }
public static void main (String[] args)
{ Towar2 p2 = new Towar2(20,”ksiazka”,5);
Towar1 p1 = new Towar1(15, ”kalendarz”);
wyprowadz(p2); //ksiazka, 20
5
// Typ produktu 2
wyprowadz(p1); } // kalendarz, 15
} // Typ produktu 1