Когда я проходил через this статью, в разделе Частные члены суперкласса, я видел эту линиюНаследование Вложенные классы в Подкласс
Вложенный класс имеет доступ ко всем закрытым членам его ограждающих класс - оба поля и методы. Следовательно, открытый или защищенный вложенный класс , унаследованный подклассом, имеет косвенный доступ ко всем частным членам суперкласса .
Мой вопрос заключается в том, как мы можем получить непосредственный доступ к Nested
классу Base
в Derived
(как мы можем получить доступ к любому public
, protected
поля)?
и
, если есть способ, как можно Derived
доступ p
который является частным полем Base
через Nested
?
public class Base {
protected int f;
private int p;
public class Nested {
public int getP() {
return p;
}
}
}
class Derived extends Base {
public void newMethod() {
System.out.println(f); // i understand inheriting protected field
// how to access the inherited Nested class here? and if accessed how to retrieve 'p' ?
}
}
Заранее благодарю за ваше время и усилия в этой теме!
Обратите внимание, что 'Nested' зависит от экземпляра' Base', поэтому экземпляр «Вложенный» может получить доступ к материалам «Base». «Базовый» экземпляр подразумевается на 'new Base.Nested()'. I. e. вы можете написать: 'Base myBase = new Base(); Base.Nested theClassBro = myBase.new Nested(); ' –