Возможно ли наследование между пакетами? Кроме того, как мы их компилируем?

Контекст: Два класса из разных пакетов (Второй класс во втором пакете наследует класс в первом пакете) связаны через наследование и сделали вызов метода для подкласса из родительского класса.

Что я сделал:

Написал два класса в двух разных файлах блокнота и пытался выполнить один за другим, но я не смог выполнить и показать сообщения об ошибках, и мои классы таковы:

package first;

import second.Sample1;

public class Sample {

public static void main(String a[])
{
    Sample1 s=new Sample1();
    s.dis(1);
}


package second;

import first.Sample;

public class Sample1 extends Sample{
public void dis(int i)
{
System.out.println(i);
}
}

В Eclipse он выводит как 1, но в каком порядке я должен выполнять эти коды, используя файлы блокнотов. Заметил, что компиляция этих классов в любом порядке дает сообщения об ошибках.

Большое спасибо.:)

1 ответ

Решение

Вы создали циклическую зависимость пакета, что не очень хорошая идея.

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

Просто переместите main метод для Sample1, а также Sample класс не должен будет импортировать second.Sample1,

Другие вопросы по тегам