2012-05-23 3 views
4

Мне было интересно: что было бы лучшим способом подгонки атрибута к классу, который является частью большой структуры наследования. Я хотел создать абстрактный статический метод, который каждый класс будет переопределять, но после быстрого google, который, похоже, не работает. Какие-либо предложения?Альтернатива переопределению статичности в java

Я мог бы сделать это методом экземпляра, но это действительно спецификация уровня класса.

Заранее спасибо.

+1

Как вы нашли, статический полиморфизм не существует на Java. Какова общая цель? –

+0

Можете ли вы подробнее объяснить, что вы хотите сделать с помощью этого статического метода? Возможно, мы сможем найти альтернативное решение. – Tudor

+0

Чтобы быть более конкретным: мы имеем дело с логическим значением, которое я должен иметь возможность запросить для объекта каждого класса. Поэтому я думаю, что я ответил на свой вопрос: я должен сделать это методом экземпляра. –

ответ

3

Я предлагаю вам создать абстрактный метод, как вы думали, и пусть этот метод будет реализован в терминах статических переменных в каждом классе.

abstract class Base { 
    abstract String getValue(); 
} 

class A extends Base { 

    static String aValue = "From A"; 

    String getValue() { 
     return aValue; 
    } 
} 

class B extends A { 

    static String bValue = "From B"; 

    String getValue() { 
     return bValue; 
    } 
} 

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

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