2013-04-16 3 views
0

Я понимаю концепцию переопределения методов суперкласса, если они объявлены публичными. Тем не менее, я хотел бы знать, есть ли способ вызвать метод superclass вместо метода subclass. Например, toString под суперклассом выведет определенные поля данных, а toString под подкласс распечатает другой набор полей данных. Я хочу использовать оба метода. Есть ли способ сделать это?Un-overriding методы в java?

+0

Если вы запрашиваете поле экземпляра, вы не можете ... Только из самого метода дочернего класса вы можете это сделать. – Thihara

ответ

2

Для вызова метода суперкласса в ToString() из подкласса, вы могли бы назвать

super.toString(); 

Так что, если вы хотите toString() метода объекта для вызова toString() метода суперкласса в то же время, вы могли бы сделать

String str = // whatever the toString() of this object is 
return str + super.toString(); 

И престо!

2

от метода дочернего класса (который в настоящее время перекрываться) вы можете позвонить super.toString() назвать версию супер, а затем на последующих заявлениях дочерних версий

1

вам нужно позвонить toString() childe, , где ребенок вызовет super.toString();

1

Вы всегда можете вызвать super.toString() из своего подкласса, чтобы вызвать метод суперкласса. Вы получите вызов «последней» переопределенной версии, если не вызывать «супер» явно, это называется polymorphism.