View mode: basic / threaded / horizontal-split · Log in · Help
August 13, 2003
Calling Parent Methods
Is there a way to call methods in a parent class? Even if the child
class overloads the method definition?

Take a look at this code:

class baseClass {
	public void doSomething(int x) {
		return x+1;
	}
}


class derivedClass: baseClass {
	public void doSomething(int x) {
		x *=2;
		return baseClass.doSomething(x);
	}
}

I haven't seen anything in the D spec that hints at this kind of
functionality. Is this currently possible, and I'm just not aware of
it? If it's not possible, is there any good reason why we couldn't add
this to the spec?
August 13, 2003
Re: Calling Parent Methods
yes super.method( .... ); as in ...
------------------
import c.stdio;

class A {
this() { printf("A::this()\n"); }
void show() { printf("A::show()\n"); }
}

class B : A {
this() { printf("B::this()\n"); }
void show() { super.show(); printf("B::show()\n"); }
}

int main( char[][] args ) {
B b = new B();
b.show();
return 0;
}


// output (as you would expect)
//A::this()
//B::this()
//A::show()
//B::show()


"Benji Smith" <dlanguage@xxagg.com> wrote in message
news:qrikjvk30j82a8l5vfrhg8840v1sg4elsh@4ax.com...
> Is there a way to call methods in a parent class? Even if the child
> class overloads the method definition?
>
> Take a look at this code:
>
> class baseClass {
> public void doSomething(int x) {
> return x+1;
> }
> }
>
>
> class derivedClass: baseClass {
> public void doSomething(int x) {
> x *=2;
> return baseClass.doSomething(x);
> }
> }
>
> I haven't seen anything in the D spec that hints at this kind of
> functionality. Is this currently possible, and I'm just not aware of
> it? If it's not possible, is there any good reason why we couldn't add
> this to the spec?
August 13, 2003
Re: Calling Parent Methods
Aha. Fantastic. This really ought to be documented on the
"functions.html" page or the "classes.html" page (which mentions using
"super" to call parent-class constructors, but not other methods) on
the digital mars website.

--Benji

On Wed, 13 Aug 2003 16:05:00 +0100, "Mike Wynn"
<mike.wynn@l8night.co.uk> wrote:

>yes super.method( .... ); as in ...
Top | Discussion index | About this forum | D home