2015-11-05 4 views
1

Если у меня есть суперкласс и подкласс следующимЕсть ли способ вызвать метод суперкласса для объекта подкласса, не пройдя метод подкласса с тем же именем?

class Superclass { 
    public void someMethod() { 
     System.out.println("superclass called here"); 
    } 
} 

и

class Subclass extends Superclass { 
    public void someMethod() { 
     System.out.println("subclass called here"); 
    } 
} 

Предположим, у меня есть объект, класс является подклассом, скажем Subclass sc = new Subclass();. Я знаю, что я могу использовать super.someMethod(); в методе подкласса для вызова метода суперкласса. Но можно ли каким-либо образом вызвать метод supclass на объекте sc без необходимости использования метода подкласса с тем же именем?

p.s. Этот вопрос исходит из небольшого задания структуры данных UCB в курсе Java. Часть четвертая, вопрос три. CS 61B Lab 5

+1

Ваш вопрос непонятен. 'без необходимости использования метода подкласса с тем же именем '- что это значит? – Rehman

+0

Я думаю, никто никогда не думал о допустимом прецеденте для этого, как правило, разрабатывает иерархию классов, где методы явно разрабатываются для перезаписи. – Smutje

+0

Если вы часто вызываете методы 'super.', вы должны, вероятно, остановиться и переосмыслить свой дизайн. – biziclop

ответ

0

Нет. Это невозможно. Кроме того, с объектно-ориентированной точки зрения, классы предков не должны знать о своих потомках, поэтому, если вам нужна такая вещь, то, возможно, лучше перепроектировать ваши классы.

Редакция:

Редактировать: возможно, это возможно реализовать, используя некоторый обход трассировки и отражения, но я настоятельно не рекомендую это делать (см. Выше).

 Смежные вопросы

  • Нет связанных вопросов^_^