
-----------------------------------
Zren
Thu Mar 05, 2009 1:36 am

Access the superClass' toString()?
-----------------------------------
Is there a way to access the toString of a superClass? Or when you make a toString() class in the subClass, do you completely overwrite it?

I know super.toString() doesn't work since it's like it makes a new instance without loading the constructor class.

-----------------------------------
wtd
Thu Mar 05, 2009 1:55 am

RE:Access the superClass\' toString()?
-----------------------------------
[code]chris@spectrum:~$ cat Test.java
class Foo {
	public String toString() {
		return "Foo";
	}
}

class Bar extends Foo {
	public String toString() {
		return "Bar";
	}

	public String superString() {
		return super.toString();
	}
}

public class Test {
	public static void main(String[] args) {
		Bar a = new Bar();

		System.out.println(a.toString());
		System.out.println(a.superString());
	}
}
chris@spectrum:~$ javac Test.java
chris@spectrum:~$ java Test
Bar
Foo
chris@spectrum:~$[/code]

-----------------------------------
DemonWasp
Thu Mar 05, 2009 1:56 am

RE:Access the superClass\' toString()?
-----------------------------------
super.toString() actually does what you want. See here: http://java.sun.com/docs/books/tutorial/java/IandI/super.html

You're thinking of super(), which calls the constructor of the parent class explicitly - something completely different.

-----------------------------------
Zren
Thu Mar 05, 2009 10:20 am

Re: Access the superClass' toString()?
-----------------------------------
Weird, the first time I did this, all the values from the superClass were null, so I thought...ya. Turns out I had two other methods with the same name that I called from the constructor. So if a method has a same name in as one of it's subClass methods, is their any way to access it, or is it just dubbed lazy and bad programming?

Thanks WTD for the example.

-----------------------------------
DemonWasp
Thu Mar 05, 2009 11:40 am

RE:Access the superClass\' toString()?
-----------------------------------
The Java language doesn't appear to specify any such method. Really, if you're relying on X method not to change its behaviour in a subclass, you should declare it as final so it can't be overridden.
