🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #141659

Dziedziczenie

#141659
From: pjw
Date: Tue, 14 Oct 2008 20:23
53 lines
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-mail

Show 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