Oszczędzanie kodu

0

Witam, jeśli jest to możliwe o proszę o jakiś łatwy w zrozumieniu przykład gdy mam klase ktora juz dziedziczy po jakiejs klasie i chce zeby brala metode z innej klasy czyli cos takiego :

class Pierwsza extends JakasTamKlasa{
metoda (){
  tu chcę wykożystać metodę(zawartosc metody o nazwie metodaDwa) z klasy Druga
  zakładając że w metodaDwa mam wyswietlanie napisu i jakies operacje na obiektach , elementy grafiki(JFileChooser itp)
 }
}

class Druga{

metodaDwa(){
  System.out.print("Wyswietlane w wielu metodach klasy o nazwie Pierwsza");
JFileChooser, obiekty na ktorych cos tam robie    
}
}

Dziedziczenie jako takie odpada, prosze o przyklad i jakies linki albo tytuły ksiażek gdzie można o tym poczytać i dowiedzieć sie jak to dokładniej działa, hasła pod jakimi mógłbym o tym przeczytać no i ewentualnie małe wytłumaczenie do przykładów.

0

W takim wypadku warto zastosować enkapsulację zamiast dziedzieczenia. Klasy można zadeklarować mniej więcej tak:

package src;

public interface Interfejs1 {

  public void metoda1();

}
package src;

public interface Interfejs2 {

  public void metoda2();

}
package src;

public class Klasa1 implements Interfejs1 {

  public void metoda1() {
    System.out.println("metoda1");
  }

}
package src;

public class Klasa2 implements Interfejs2 {

  public void metoda2() {
    System.out.println("metoda2");
  }

}
package src;

public class GlownaKlasa implements Interfejs1, Interfejs2 {

  private final Klasa1 klasa1;

  private final Klasa2 klasa2;

  public GlownaKlasa(final Klasa1 kl1, final Klasa2 kl2) {
    this.klasa1 = kl1;
    this.klasa2 = kl2;

  }

  public void metoda1() {
    this.klasa1.metoda1();
  }

  public void metoda2() {
    this.klasa2.metoda2();
  }

}

W ten sposob GlownaKlasa zachowuje funkcjonalnosc dwoch mniejszych klas nie nie wykorzystując w ogóle dziedziczenia :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1