2016-04-01 4 views
0
public class Test { 
    public static void main(String[] args) { 
    new Person().printPerson(); 
    new Student().printPerson(); 
    } 
} 

class Student extends Person { 
    private String getInfo() { 
    return "Student"; 
    } 
} 

class Person { 
    private String getInfo() { 
    return "Person"; 
    } 
    public void printPerson() { 
    System.out.println(getInfo()); 
    } 
} 

ОтветПочему метод «printperson()» вызывает закрытый метод подкласса?

Человек
Люди

Но когда я изменяю как частный доступ спецификатор к общественности, в результате

Человек
Студента

Почему? Я не понимаю.

+3

Добро пожаловать в StackOverflow. Ваш вопрос вне темы, поскольку он не предоставляет никакой информации. Недостаточно ссылки на фотографию некоторого кода, вы должны включить код в свой пост. Пожалуйста, посетите [помощь] и прочитайте [ask]. StackOverflow призван помочь будущим читателям не просто ответить на ваш вопрос. –

+0

First Go читать java, тогда вы найдете свой ответ @kangzhi –

ответ

0

Частные методы не видны в подклассах и поэтому не могут быть переопределены. Поэтому он всегда вызывает метод из родительского класса.