В дополнение к предыдущим ответам ... Я буду использовать 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;