2012-06-14 7 views
0

У меня есть небольшая проблема, из-за которой я пока не могу пропустить свой код.Доступ из родительского класса

У меня есть 2 класса, один из них представляет собой абстрактный класс, который наследует его дети, а дети расширяют этот класс.

Так что это что-то вроде этого:

abstract class foo implements Runnable{ 
    int whatever; 
    int whatever2; 

    public void doStuff(){ 

     //need value from child class here -- should be 100 
} 

public class bar extends foo{ 
    private int ID = 100; 

    //getter here 
} 

Причины использовать родительский класс, чтобы объединить свои конструкторы/методы сериализации принять тонны различных классов, которые все имеют аналогичные данные, но с совершенно разными значениями.

+5

Что вопрос? –

+0

Соглашения Java означают, что имена классов должны начинаться с заглавной буквы, например. 'Bar' и' Foo'. Это может показаться второстепенным, но, читая ваш код, он чувствует себя удивительно ... странно. –

ответ

3

Используйте метод:

public abstract class Foo { 

    public void doStuff(){ 
     int id = getID(); // <==== get the ID 
    } 

    public abstract int getID(); 
} 

public class Bar extends Foo { 

    private int ID = 100; 

    public int getID() { 
     return ID; 
    } 
} 

(Adjust видимости getID() в соответствии с планируемым прецедентом.)

+0

О дерпп ... да ... это правильно. Спасибо. –

+0

'Public' или' Protected', конечно. – SimplyPanda

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