Article View: pl.comp.lang.java
Article #153940Re: Zagadnienie polimorfizmu?
From: Arivald
Date: Thu, 12 Dec 2013 12:23
Date: Thu, 12 Dec 2013 12:23
69 lines
2635 bytes
2635 bytes
W dniu 2013-12-12 12:00, Jadalbert pisze:
> Jak to właściwie jest. Mam klasę abstrakcyjną (dodam, że rzecz ma się dziać w jsf - co to zmienia, nie wiem)
>
public interface FiguraZPolem {
public double getPole()
}
> public abstract class Figura implements FiguraZPolem {
> public Figura(){}
>
> private double pole;
>
@Override
> public double getPole() {
> return pole;
> }
> }
>
> i klasę
>
public interface FiguraZObwodem {
public double getObwod()
}
> public class Kolo extends Figura implements FiguraZObwodem {
> public Kolo(){}
>
> private double obwod;
>
@Override
> public double getObwod() {
> return obwod;
> }
> }
>
> i teraz:
> public class Licz {
> private Figura figura;
> private double PoleObwod;
>
> public Licz() {}
>
> public Licz(Figura figura) {
> this.figura = figura;
> }
>
> public double getPoleObwod() {
if (!figura instanceof FiguraZObwodem)
throw new InvalidParameterException("oczekiwano
FiguraZObwodem");
if (!figura instanceof FiguraZPolem )
throw new InvalidParameterException("oczekiwano
FiguraZPolem ");
> return ((FiguraZPolem ) figura).getPole() * ((FiguraZObwodem) figura).getObwod();
> // i tu oczywiście błąd bo obwodu nie ma w klasie Figura !
> }
> }
>
> w "realu" będzie więcej klas jak Kolo i każda nie dość, że będzie pokrywała metody klasy bazowej to jeszcze będzie miała własne, dodatkowe. I skąd wziąć wiedzę, jakiej klasy jest to co przychodzi w konstruktorze?
>
Po za tym Figura tez może być interfejsem, pustym. Da ci to możliwość
posiadanie kilku hierarchii dziedziczenia figur.
--
Arivald
Technical Details
Message-ID:
<l8c9r8$ddk$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<e8a6173d-2e5d-4055-9877-1bc8fa939deb@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Arivald <arivald_@AT_interia_DOT_.pl> Newsgroups: pl.comp.lang.java Subject: Re: Zagadnienie polimorfizmu? Date: Thu, 12 Dec 2013 13:23:10 +0100 Organization: Dialog Net Lines: 70 Message-ID: <l8c9r8$ddk$1@news.dialog.net.pl> References: <e8a6173d-2e5d-4055-9877-1bc8fa939deb@googlegroups.com> NNTP-Posting-Host: 62.87.249.67 Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1386850984 13748 62.87.249.67 (12 Dec 2013 12:23:04 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Thu, 12 Dec 2013 12:23:04 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 In-Reply-To: <e8a6173d-2e5d-4055-9877-1bc8fa939deb@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit