Java, как заставить аргумент метода принимать тип подкласса и суперклассаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java, как заставить аргумент метода принимать тип подкласса и суперкласса

Сообщение Anonymous »

У меня есть суперкласс и один подкласс с некоторыми переменными, как показано ниже:

Код: Выделить всё

public class A{

private int first;
private int second;

public A(int _first, int _second){
first = _first;
second = _second;
}

public int getFirst(){
return first;
}

}

public class B extends A{

private int third;

public B(int _first, int _second, int _third){
super(_first, _second);
third = _third;
}

public int getThird(){
return third;
}

}
Я хочу создать в основном классе метод, который принимает общий аргумент, который может иметь тип A или тип B, как показано ниже:

Код: Выделить всё

public class Main{

public int val = 2;

public static void main(String []args){
A a = new A(1, 2);
B b = new B(1, 2, 3);

printObject(a);
printObject(b);

}

public void printObject(A a){

int f = a.getFirst() * val;
int s = a.getSecond() * val;

if(a instanceOf B){
int t = a.getThird() * val; // compiler does not find the getThird() method this way
}
}
}
Как этого можно достичь?. дженерики вариант? Я думал о том, чтобы создать метод printObject() внутри A, а затем переопределить его внутри B, однако у меня есть другая переменная, такая как val выше, которую я создаю в main. p>
обновление
Я пытался использовать instanceOf, как описано выше. Но в этом случае компилятор не находит конкретный метод подкласса.

Подробнее здесь: https://stackoverflow.com/questions/587 ... superclass
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»