Наследование Java и приведение объектов - PullRequest
7 голосов
/ 12 апреля 2010

Я довольно новичок в программировании, у меня есть вопрос, пожалуйста, помогите мне. (этот вопрос - вопрос Java, но я не могу вспомнить синтаксис, но в основном я пишу здесь.)

A class Person speaks "i am a person"
A class Student speaks "i am a student"
Student extends from Person
Person p = new Student

тогда что тогда говорит p?

Ответы [ 18 ]

0 голосов
/ 27 января 2016

Персона "P" является здесь ссылкой, которая инициализируется с объектом студента. Поэтому, когда начнется выполнение программы, во время выполнения будет вызвана функция класса Student.

0 голосов
/ 30 ноября 2015

П Будет говорить: я студент.

Но у него будет только общее поведение обоих классов. любое поведение, которое имеет ученик, но не лично, P не сможет получить доступ к такому поведению.

0 голосов
/ 03 сентября 2015

Здесь показано понятие полиморфизма, например, что суперкласс может содержать ссылку на дочерний класс, а также понятие наследования, например, «ученик - личность», означает, что ученик расширяет личность. Итак, здесь Person - это Суперкласс, а Student - это Детский класс. В соответствии с полиморфизмом человек класс (суперкласс) может содержать ссылку на класс ученика (подкласс).

0 голосов
/ 12 апреля 2010

Если метод не является статическим, то метод Стьюдента будет вызываться, как уже упоминалось. Просто будьте осторожны, если метод говорит статично, будет вызван метод Person. Это называется сокрытием.

0 голосов
/ 12 апреля 2010

Я бы догадался "i am a student". Это основной полиморфизм .

0 голосов
/ 07 марта 2016

Существует динамический метод отправки / динамическое связывание . Человек р = новый студент ();
p является ссылочной переменной того типа Person, который вызывается для объекта Student .Student является дочерним классом, а Person является родительским классом, который расширен. Два класса имеют методы, которые являются статическими или нет.

0 голосов
/ 07 августа 2016

Здесь я буду говорить, я студент. Это пример динамического связывания.

0 голосов
/ 14 июля 2015

Это пример одиночного наследования в java. В этом примере «Person» является базовым классом, где «Student» является производным классом. Если ничего не указано,

Person p=new Student();

Объект p (похоже, объект Person) получит доступ к свойствам класса Student, который переопределил свойства своего собственного базового класса Person.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...