Возможно ли наследование здесь? Внутренний родительский класс расширяет внешний дочерний класс? - PullRequest
0 голосов
/ 20 декабря 2010
A
|_A1
|  |_parent.java
|_child.java

parent.java наследует child.java любым возможным способом?

здесь A и A1 - пакеты или каталоги

Ответы [ 3 ]

1 голос
/ 20 декабря 2010

Ваше изображение показывает папки и исходные файлы Java. У нас есть одна папка A, которая содержит файл child.java, а другая папка A1. A1 содержит исходный файл Java parent.java.

Расположение исходных файлов (или файла классов) в файловых системах не создает и не объявляет отношения между классами.

Если вы хотите, чтобы класс parent наследовал (от) класс child (iaw: parent наследует поля и метод от child - странно в реальном мире, но возможно), вы должны объявить это отношение в исходный код Java Сохраняя ваши имена, файлы должны выглядеть так:

child.java

package A;
public class child {};

parent.java

package A.A1;
import A.child;
public class child extends parent {};

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

1 голос
/ 20 декабря 2010

Только если у ребенка есть extends предложение

public class Child extends Parent{}

Если это так, Child будет иметь доступ ко всем public и protected членам Parent. В противном случае Child будет иметь доступ только к public членам Parent.

Если файлы находятся в одной и той же иерархии каталогов, но не в одном и том же каталоге, пакеты не считаются связанными, и, следовательно, элементы с видимостью по умолчанию («защищенным пакетами») не отображаются.

Соответствующее чтение:

0 голосов
/ 20 декабря 2010

НЕТ

Я понял, что это ваша иерархия пакетов / деревьев, и вы запросили какое-либо наследование.Если есть наследование, выглядит ли оно как иерархия наследования / дерева?Если вы уничтожаете дерево наследования, это означает, что не должно быть каким-либо унаследованным классом в любом другом не относящемся к делу пакете или в любом другом узле.Другими словами, отсутствие дизайна шаблона.Если вы сделаете это, вы будете обрабатывать избыточную доступность на уровне пакета и с другими пакетами, поэтому вы не сможете ничего говорить об OO или инкапсуляции в этом проекте

...