いくつかのプログラミング言語では、特定の多相性の状況において使用できる型の範囲を制限するために部分型付け（部分型多相とも呼ばれる）を採用している。そういった言語で部分型付けを使用すると、ある型Tのオブジェクトを受け取る関数は、Tの部分型である型Sのオブジェクトを渡された場合でも正しく動作する（リスコフの置換原則）。この型の関係性はしばしばS <: Tと表記される。一般的に部分型多相は動的に解決される（後述）。次のJavaの例ではAnimalの部分型としてCatとDogを用意する。メソッドletsHear()はAnimal型の引数を受け取るが、その部分型の引数を渡しても問題なく動作する。abstract class Animal {    abstract String talk();}class Cat extends Animal {    String talk() {        return "Meow!";    }}class Dog extends Animal {    String talk() {        return "Woof!";    }}class Test {    static void letsHear(final Animal a) {        System.out.println(a.talk());    }    public static void main(String[] args) {        letsHear(new Cat());        letsHear(new Dog());    }}オブジェクト指向言語はサブクラス化（継承）によって部分型多相を提供する。典型的な実装では、各クラスはそれぞれ仮想関数テーブル（vtable）と呼ばれる関数のテーブルを持ち、各オブジェクトは自らのクラスのvtableへのポインタを持つ。多相なメソッドを呼出すときには、このvtableを参照する。多くのオブジェクト指向言語では、仮想関数の呼出しに1番目の引数（thisオブジェクト）の vtable だけを参照する単一ディスパッチを採用している。つまりその他の引数の実行時の型は仮想関数の呼び出しに全く無関係である。一方でCommon Lisp Object Systemなどでは、メソッドの呼出しが全ての引数に対して多相的となる多重ディスパッチを採用している。
パラメータ多相を使うと、値の型に関係なく均一に値を扱うことで、関数やデータ型を総称的に記述できるようになる。パラメータ多相は言語の静的な型安全性を保ちながら表現力を向上させる手法のひとつである。パラメータ多相の概念は関数とデータ型の両方に適用される。異なる型の値に対して評価、適用可能な関数のことを多相な関数という。総称化された型とみなすことができるデータ型（例えば任意の型の要素を持てるリスト）は多相なデータ型という。パラメータ多相性は関数型プログラミングの分野では至るところに現れるため、しばしば単に「多相性」と言われることがある。次のHaskellの例ではパラメータ化されたリストと2つのパラメータ多相な関数を示す。data List a = Nil | Cons a (List a)length :: List a -> Integerlength Nil         = 0length (Cons x xs) = 1 + length xsmap :: (a -> b) -> List a -> List bmap f Nil         = Nilmap f (Cons x xs) = Cons (f x) (map f xs)パラメータ多相は様々なオブジェクト指向言語でも利用できる。例えばC++やD言語のテンプレート、JavaやC#のジェネリクスなどである。class List<T> {    class Node<T> {        T elem;        Node<T> next;    }    Node<T> head;    int GetLength() { ... }}List<B> Map(Func<A, B> f, List<A> xs) {    ...}ジャン＝イヴ・ジラールとJohn C. Reynoldsは、それぞれ独立に、パラメータ多相の概念をラムダ計算の拡張（System Fとか多相ラムダ計算と呼ばれる）として形式的に発展させた。
日本ではしばしば「ドイツではナチス犯罪に時効はない」と言われるが、ドイツ司法においてそのような法的根拠は存在しない。そもそもドイツでは「ナチス犯罪」が法律の上で定義されているわけではないため「ナチス犯罪の時効をなくす」のは最初から不可能である。この「ナチス犯罪に法的定義がない」点は、後にドイツ議会が刑免除法を制定したとき「ナチス時代にユダヤ人商店から商品を奪った」のと「戦後の闇市で飢えからパンを盗んだ」行為が、「ナチス時代に迫害を逃れるため偽名を使って潜伏した」のと「戦後、連合軍の戦犯追及を逃れるため偽名を使って潜伏した」行為が、同じように免罪される事態を招いている。ナチス時代の犯罪のうち、窃盗など軽犯罪は1950年まで、所有権侵害罪などは1955年、故殺罪や強姦罪などは1960年に公訴時効が成立した。この時点で公訴時効に達していなかったのは謀殺罪（計画的殺人）と謀殺幇助罪だけであるが、このうち謀殺幇助罪の時効は当初は20年、1960年には30年に延長されたが、1969年の刑法改正により「個人的動機がない」ものの時効が半分の15年に短縮され、ユダヤ人迫害などに関わるものは「個人的動機がない」として、1960年に遡って時効が成立している。すなわち結果として「謀殺幇助罪の時効を延長した筈の1960年に、法律上は時効が成立した」のである。この時効短縮については、1960年代後半、ナチス時代にユダヤ人達を強制収容所に送り込んだ官僚（いわゆる「机上の殺人者」）を謀殺幇助罪で追及する裁判が開かれていたが、この刑法改正に伴い時効の成立（69年5月20日に連邦裁判所にて「起訴時点での時効成立」が確認されている）により追及は打ち切られたため意図的なものであるとも言われている。当時のドイツ法相ホルスト・エームケ（ドイツ社民党）は「刑法改正のこのような副作用は望まなかった」と述べているが、イスラエル大使ベン・タナンが68年7月に懸念を表明していたにもかかわらず、それが刑法改正時に考慮された形跡はない。現在、ナチス時代の犯罪の中で時効が停止されているのは謀殺罪だけであるが、これもナチス限定ではなく、あくまでも謀殺罪全ての時効が否定されているに過ぎず、米国や英国で殺人の時効がないのと同レベルの話である。なお現在のドイツでは、ジェノサイド罪にも時効はないが、これはナチス時代に存在しなかった罪であるため、無理にナチスに適用すると、刑法の遡及適用という形で民主主義の刑法の基本である罪刑法定主義を否定することになる。日本では時々「ドイツではナチス犯罪者に法の遡及適用が行われた」とされることがあるが、ドイツ連邦においては、常に「ナチス時代でも法は法」という法実証主義の立場が堅持されており、ジェノサイド罪をはじめとする当時存在しなかった罪がナチス時代の行為に適用されたことは一度もない。ただし､法の不遡及に法解釈の不遡及を含むと解する立場からは､ナチス時代に適法と解されていた行為を事後的に変更された法解釈により処断することは遡及処罰にあたるとの結論も導きうる｡これと同旨の批判は､統一ドイツの裁判所において､亡命企図者を殺傷した旧東ドイツの国境警備兵を､旧東ドイツ法によって有罪とした裁判にも加えられた｡