2 июл. 2015 г.

Наследование. Модификатор private для методов и полей.

Как показывает многочисленная практика и даже некоторые статьи в интернет, многие думают что private поля и методы не наследуются подклассами. Так вот :) Они наследуются. И сейчас мы это докажем, дабы не быть голословными. Честно говоря не думал что такую статью придется писать, но в комментариях к моим статьям тоже были такие утверждения. Но сейчас мы прольем свет истины на это дело.

P001

Эта программа выведет слово PRIVATE.

Как видно из кода мы создали два класса A и B сидели на трубе. Блин, даже писать скучно все это :)

Так вот, B наследуется от А и как видите мы в класс B, для яркости примера (чтоб прям било в глаза), вообще ни чего не добавили.

Затем создаем объект класса B и на нем вызываем метод prt(). Хочу сразу оговорится объектов класса A мы не создавали.

Программа выводит слово PRIVATE потому что объект класса B унаследовал ВСЁ, вот блин ВСЁ, от класса A, включая private поля и методы. Надеюсь уже больше вопросов по этому вопросу не будет :) ?

Стоит еще раз отметить, что private поля и методы доступны методам только внутри класса поэтому, хотя они и наследуются подклассами, но подклассы не могут получить доступ к private полям и методам супер класса. На то они и private.

Комментариев нет:

Отправить комментарий