Почему свойство int a остается 5 а метод меняется?

программирование java ООП

class A {
int a=5;
void den(){
System.out.println("Den");
}
}

class B extends A {
int a=7;
void den(){
System.out.println("asdasd");
}
}
public class Test{



/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A b=new B();
System.out.println(b.a);
b.den();


}


}


Примечание:
При выполнении выведется 5 и asdasd то есть свойство останется таким же а метож заменится Почему?
Ответы:
Потому что в A.a и B.a - разные переменные.
А метод один и он перегружается.
Потому что какую переменную выводить java определяет по типу ссылки. А какой метод использовать - по типу объекта.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.