Попытка понять модификаторы доступа в Java - PullRequest
0 голосов
/ 13 марта 2020

Только что был вопрос относительно модификаторов доступа в Java. Поэтому я подумал, что методы по умолчанию не могут быть унаследованы классом, кроме как в том же каталоге, но почему «myfun c ()» наследуется в этом файле.

package com.daniel.oops.poly;

import com.daniel.oops.poly2.B;

public class Main {
    public static void main(String[] args) {
        A bobject = new B();
        bobject.myfunc();
    }
}
package com.daniel.oops.poly;

public class A {
    void myfunc() {
        System.out.println("Default function");
    }
}
package com.daniel.oops.poly2;

import com.daniel.oops.poly.A;

public class B extends A {

}

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Ну, Main и A.myfunc() находятся в одном пакете, поэтому я думаю, что myfunc() виден только потому, что пакет private означает именно это.

0 голосов
/ 13 марта 2020

Я создал таблицу, которая поможет вам понять, почему она так работает.

Modifier    Class   Package     Subclass    World
public        Y        Y            Y         Y
protected     Y        Y            Y         N
no modifier   Y        Y            N         N
private       Y        N            N         N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...