Heiko Braun: Was ist das ?

Folgenden Code habe ich in einer funktionsfähigen CSS gefunden:

OL.List {  display: .................
OL.List-2 {  list-style-type .......
UL.List {  display .....................
UL.List-2 {  list-style-.....................
OL UL.List-2 {  list-style-type: square; margin-top: 0.35em}
UL UL.List-2 {  list-style-type: square; margin-top: 0.35em}
OL OL.List-2 {  list-style-type: upper-Alpha; margin-top: 0.35em}
UL OL.List-2 {  list-style-type: upper-Alpha; margin-top: 0.35em}

Die ersten 4 Zeilen waren o.k., verständlich und ich habe sie etwas gekürzt.
Aber was passiert in den 4 letzten Zeilen ?
Ist das Vererbung ?
Und warum wird OL und UL doppelt definiert ?

  1. OL UL.List-2 {  list-style-type: square; margin-top: 0.35em}
    UL UL.List-2 {  list-style-type: square; margin-top: 0.35em}
    OL OL.List-2 {  list-style-type: upper-Alpha; margin-top: 0.35em}
    UL OL.List-2 {  list-style-type: upper-Alpha; margin-top: 0.35em}

    http://de.selfhtml.org/css/formate/zentrale.htm#verschachtelte_elemente
    http://www.w3.org/TR/REC-CSS2/selector.html#descendant-selectors