Дженерики и полиморфизм - PullRequest
0 голосов
/ 11 марта 2010

Мне очень нужен ANS для решения этой проблемы --- Разница между дженериками и полиморфизмом с помощью примеров кода. Я знаю что-то связанное с компиляцией времени или связывания, но я не уверен .. пожалуйста, помогите

Ответы [ 2 ]

10 голосов
/ 11 марта 2010

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

Обобщение - это свойство алгоритма или класса, реализующего алгоритм (сортировку) или обычную операцию (списки), требующие, чтобы классы, с которыми они имеют дело, имели определенные методы, свойства или интерфейсы.

6 голосов
/ 06 февраля 2015

В дополнение к предыдущим ответам ... Я буду использовать Java, но концепция почти такая же. Java Универсальные методы и универсальные классы позволяют программистам указывать с помощью одного объявления метода набор связанных методов или, с помощью одного объявления класса, набор связанных типов, соответственно.

, например

Используя концепцию Java Generic, мы могли бы написать универсальный метод для сортировка массива объектов, затем вызовите общий метод с Целочисленные массивы, двойные массивы, строковые массивы и т. Д. Для сортировки элементы массива.

public class GenericMethodTest
{
// generic method printArray                         
public static < E > void printArray( E[] inputArray )
{
  // Display array elements              
     for ( E element : inputArray ){        
        System.out.printf( "%s ", element );
     }
     System.out.println();
}

public static void main( String args[] )
{
    // Create arrays of Integer, Double and Character
    Integer[] intArray = { 1, 2, 3, 4, 5 };
    Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
    Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };

    System.out.println( "Array integerArray contains:" );
    printArray( intArray  ); // pass an Integer array

    System.out.println( "\nArray doubleArray contains:" );
    printArray( doubleArray ); // pass a Double array

    System.out.println( "\nArray characterArray contains:" );
    printArray( charArray ); // pass a Character array
}   
}

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

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

например.

 public interface Vegetarian{}
 public class Animal{}
 public class Deer extends Animal implements Vegetarian{}

Теперь следующие декларации являются законными:

Deer d = new Deer();
Animal a = d;
Vegetarian v = d;
Object o = d;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...