В чем основное различие между наследованием и полиморфизмом? - PullRequest
152 голосов
/ 10 июня 2011

Сегодня мне поставили этот вопрос в конце экзамена по открытой книге и я потерял себя. Я читал Head first Java, и оба определения казались абсолютно одинаковыми. Мне было просто интересно, какова ГЛАВНАЯ разница для моего собственного разума. Я знаю, что есть ряд подобных вопросов, но ни один из них, которые я видел, не дает однозначного ответа.

Ответы [ 16 ]

1 голос
/ 12 апреля 2019

Полиморфизм - это эффект наследования .Это может происходить только в классах, расширяющих друг друга.Это позволяет вам вызывать методы класса, не зная точного типа класса.Кроме того, полиморфизм происходит в время выполнения .

Например, пример полиморфизма Java:

enter image description here

Наследованиепозволяет производным классам совместно использовать интерфейсы и код их базовых классов.Это происходит в время компиляции .

Например, все классы в платформе Java являются потомками объекта (изображение любезно предоставлено Oracle):

enter image description here

Подробнее о наследовании Java и полиморфизме Java

0 голосов
/ 30 января 2018

Полиморфизм достигается с помощью Наследование в Java.

public class Animal {}
public interface Herbivore {}
public interface Carnivore {}
public interface Pet {}

public class Hamster extends Animal implements Herbivore implements Pet () {}
public class Cat extends Animal implements Carnivore implements Pet () {}

Hamster класс наследует структуру от Animal, Herbivore и Pet для демонстрации Полиморфный бихевиоризм из домашнее животное.

Cat класс наследует структуру от Animal, Carnivore и Pet, чтобы также демонстрировать Полиморфный бихевиоризм домашнего питомца.

0 голосов
/ 07 декабря 2017

наследование - это разновидность полиморфизма, собственно наследование - это динамический полиморфизм. Поэтому, когда вы удаляете наследование, вы больше не можете переопределять.

0 голосов
/ 06 января 2015

Если вы используете JAVA, это так просто:

Полиморфизм использует унаследованные методы, но "переопределяет" их, чтобы сделать что-то другое (или то же самое, если вы вызываете super, так что технически это не будет полиморфным).

Поправь меня, если я ошибаюсь.

0 голосов
/ 23 октября 2011

Основное назначение полиморфизма : создание ссылочной переменной для суперкласса и удержание подкласса object =>, объект может выполнять несколько вариантов поведения.

В наследование , подкласс наследуют свойства суперкласса .

0 голосов
/ 10 июня 2011

Наследование - это когда класс A наследует все нестатические защищенные / публичные методы / поля от всех своих родителей до Object.

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