2024-05-21 06:45:50
  • Hello!
  • Whats ya doin?
  • ByeBye

[&]

18.222.32.154

Dziedziczenie - przykładowy kod

workshop: #20-cls-inh.html

Dziedziczenie i polimorfizm

Przygotowanie

  1. Zapoznanie się z dokumentem: Informacje nt. Dziedziczenia i polimorfizmu
  2. Przygotowanie katalogu roboczego, np. 20-cls-inh
  3. Przeczytanie zadania oraz dodatkowych informacji
1 Implementacja klasy Baza.java oraz Potomna.java
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
	}

}
2 Przykład polimorfizmu
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());
	}

}
3 Zadania

#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

Diagram UML Klas

#3 Uzupełnij klasę Free o metodę wyświetlającą informacje o Projekcie oraz klasę Full o podobną metodę z pełnymi informacjami.

Podsumowanie

  1. Brak