Наследование переменной с помощью ключевого слова super в java
class Person { String name; Person() { } Person(String name) { this.name=name; } } class Employee extends Person { void getdetails() { System.out.println("Name : "+super.name); } } class DoubtInSuper { public static void main(String arr[]) { Person p=new Person("Virat"); Employee e=new Employee(); e.getdetails(); } }
Что я уже пробовал:
Выход выше программы -
Наименование : нулевой
Richard Deeming
Это именно тот результат, которого вы ожидаете, так как вы еще не установили name
поле на Employee
пример ни к чему.
Или вы ожидали, что значение поля в одном экземпляре волшебным образом будет скопировано в совершенно другой экземпляр?
Member 13257407
Я не уверен.
Но ... super.name' должен показывать значение строки 'name' в непосредственном родительском классе.
и я передал строку "Virat" в имя через параметризованный конструктор в основном методе.
Если я сказал Здесь что-то не так, пожалуйста, дайте правильное объяснение.
Richard Deeming
Но вы этого не сделали! Вы создали два совершенно отдельных объекта - один экземпляр Person
класс, которому вы передали имя; и один совершенно отдельный экземпляр Employee
класс, к которому вы имеете НЕ передал имя.
Вам действительно нужно пройти через некоторые основные учебные пособия: Учебные Пособия По Java™ [^]