Я хочу вызвать метод дочернего класса для объекта суперкласса, но поскольку я объявил другое целое число в дочернем классе, оно дает мне исключение, есть ли обходное решение, чтобы это произошло?как вызвать метод дочернего класса родительскому объекту
public static void main(String[]args){
A a = new A(2,3);
B b = new B(3,5,6);
System.out.println("A object: ");
a.showij();
System.out.print("sum = ");
((B) a).sum(); < ==== this line gives me the error, can't cast
System.out.println("B object: ");
b.showij();
System.out.print("sum = ");
b.sum();
}
public class B extends A {
int k;
public B(){
super();
}
public B(int a, int b, int c) {
super(a, b);
k = c;
}
public void sum(){
System.out.println(i + j + k);
}
}
public class A {
int i,j;
public A() {
}
public A(int a, int b){
i = a;
j = b;
}
public void showij(){
System.out.println("\ti: " + i + " j: " + j);
}
}
* Редактирование: здесь есть все, что
вы можете показать, Что '' A' и B'? – sanbhat
Непонятно, что вы спрашиваете, и не видя определений 'A' и' B', я не думаю, что кто-то может понять, какие методы доступны из каких классов. –
A - родительский класс java, который принимает 2 целых числа, B - это дочерний класс, который расширяет A и принимает 3 целых числа, класс B имеет сумму метода, которая суммирует целые числа i, j и k –