Java | dostęp do metod chronionych

Ćwiczenie.
Wykaż, że metody chronione podlegają dostępowi pakietowemu, ale nie są metodami publicznymi.

Rozwiązanie:
Tworzymy dwie klasy: Animal i Owner w dwóch oddzielnych pakietach.
Odpowiednie klasy są dostępne poniżej:

Animal.java:

package net.traininguniverse.hiddden;

public class Animal {

    protected boolean isHungry(boolean feed) {
        if (feed)
            return false;
        else
            return true;
    }

    public boolean showIsHungry(boolean feed) {
        return isHungry(feed);
    }
}

 

 

Owner.java:

package net.traininguniverse.main;

import net.traininguniverse.hiddden.Animal;


public class Owner {

    public static void main(String[] args) {

        Animal animal = new Animal();
        //animal.isHungry(true);
        //blad kompilatora (protected access), wiec nie jest publiczna
        System.out.println(animal.showIsHungry(true));
        //wyswietla false, czyli podlega dostepowi pakietowemu
    }
}