Article View: pl.comp.lang.java
Article #141659Dziedziczenie
From: pjw
Date: Tue, 14 Oct 2008 20:23
Date: Tue, 14 Oct 2008 20:23
53 lines
1787 bytes
1787 bytes
Witam,
Problem jest następujący. Mamy klasę bazową 'Base', klasę dziedziczącą
po klasie bazowej 'Derived' i funkcję 'f', która zwraca obiekt bazowy. W
konstruktorze klasy pochodnej chciałbym wywołać funkcję 'f' i zawartość
zwróconego obiektu przepisać do składowych klasy 'Derived'. Można to w
prosty sposób zrealizować poprzez skopiowanie składowej po składowej.
Pytanie brzmi, czy da się to zrobić inaczej? Krócej?
Przykładowy kod:
<code>
class Base {
public int a, b, c;
}
class Derived extends Base {
public Derived() {
// Zbyt długie
Base base = Main.f();
a = base.a;
b = base.b;
c = base.c;
// Może krócej da się? Coś a la...
/* this = (Derived) Main.f(); */
}
}
public class Main {
public static Base f() {
Base base = new Base();
base.a = 10;
base.b = 100;
base.c = 1000;
return base;
}
public static void main(String[] args) {
Derived foo = new Derived();
System.out.println("a = " + foo.a);
System.out.println("b = " + foo.b);
System.out.println("c = " + foo.c);
}
}
</code>
Pozdrawiam,
pjw
Technical Details
Message-ID:
<gd2v4k$tsf$1@opal.icpnet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsb.icpnet.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsb.icpnet.pl!not-for-mail From: pjw <none@none.none> Newsgroups: pl.comp.lang.java Subject: Dziedziczenie Date: Tue, 14 Oct 2008 22:23:45 +0200 Organization: ICP News Server Lines: 53 Message-ID: <gd2v4k$tsf$1@opal.icpnet.pl> NNTP-Posting-Host: c202-36.icpnet.pl Mime-Version: 1.0 X-Trace: opal.icpnet.pl 1224015828 30607 85.221.202.36 (14 Oct 2008 20:23:48 GMT) X-Complaints-To: abuse@icpnet.pl NNTP-Posting-Date: Tue, 14 Oct 2008 20:23:48 +0000 (UTC) User-Agent: Thunderbird 2.0.0.16 (X11/20080724) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit