[&]
18.222.32.154
workshop: #20-cls-inh.html
20-cls-inh
public class Baza extends Object { // każda klasa dziedziczy (niejawnie) z Object, // więc nie ma potrzeby pisania: extends Object protected String atrybut1 = "Pierwsza klasa"; protected boolean atrybut2 = false; public int atrybut3 = 1; public void drukuj(){ String out = "attr1: "+atrybut1; out+= "\r\n"+"attr3: "+atrybut3; System.out.println(out); } }
public class Potomna extends Baza { // dzięki dziedziczeniu z klasy Baza nie ma potrzby // ponownej deklaracji atrybutów: // protected String atrybut1 = "Pierwsza klasa"; // protected boolean atrybut2 = false; // public int atrybut3 = 1; // i metod: // public void drukuj(){} public String nieDrukuj(){ String out = "attr1: "+atrybut1; out+= "\r\n"+"attr3: "+atrybut3; return out; } }
Klasa główna programu
public class Main { public static void main( String[] args) { Baza b = new Baza(); // metody getClass() i toString() są dziedziczone z klasy Object System.out.println(b.getClass().getSimpleName()); System.out.println(b.toString()); Potomna p = new Potomna(); System.out.println(p.getClass().getSimpleName()); System.out.println(p.nieDrukuj()); p.drukuj(); // jest odziedziczona z klasy Baza } }
import java.util.ArrayList; public class Demo { // Przykład Polimorfizmu, czyli wielopostaciowości public static void main( String[] args) { String s = new String("To jest przkyład"); Object o = new String("To jest polimorfizm"); System.out.println(s); System.out.println(o); ArrayList<String> as = new ArrayList<String>(); ArrayList<Object> a = new ArrayList<Object>(); as.add(s); // zakomentuj as.add(o);, aby uruchomić program //as.add(o); // bez polimorfizmu nie da się umieścić w tablicy AS // obiektu innego typu niż String a.add(s); a.add(o); System.out.println("Długość tablicy a[]: "+a.size()); System.out.println("Długość tablicy as[]: "+as.size()); } }
#1 [do kodu 2] Zaimplementuj tablicę wraz z pętlą, których referencje będą typów ogólnych, a dane typów szczegółowych.
#2 [utrwalające] Zaimplementuj dwie klasy przechowujące infromacje nt Projektów: Free oraz dziedzicącą z niej Full zgodnie z diagramem UML CD
#3 Uzupełnij klasę Free o metodę wyświetlającą informacje o Projekcie oraz klasę Full o podobną metodę z pełnymi informacjami.