Как объявить метод в родительском абстрактном классе, чтобы к нему могли обращаться дети? - PullRequest
1 голос
/ 29 апреля 2011

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

Я думаюэто невозможно, потому что частное делает его частным, публичным и защищенным, слишком обличает его.

Как бы вы подошли к проблеме?Реализация одного и того же метода во всех расширенных классах не обсуждается .. есть ли способ доступа к родительским методам?

спасибо!

Ответы [ 3 ]

2 голосов
/ 29 апреля 2011

but not by everyone else in the package.. Это невозможно.Вы можете использовать protected доступ, чтобы разрешить доступ для подклассов, но это также будет включать доступ для каждого класса в одном пакете.

2 голосов
/ 29 апреля 2011

Если вы хотите, чтобы метод был доступен всему, что расширяет класс, тогда protected - это нужный модификатор. Вот для чего это.

1 голос
/ 29 апреля 2011

Используйте защищенный и создайте пакет, который содержит только абстрактный класс и его подклассы. Не помещайте в этот пакет другие классы, которые не должны иметь доступа к защищенным методам.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...