OOP2

Opdracht2.txt

1
Copyright © 2015 Maarten Vangeneugden
2
Permission is granted to copy, distribute and/or modify this document
3
under the terms of the GNU Free Documentation License, Version 1.3
4
or any later version published by the Free Software Foundation;
5
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
6
A copy of the license can be found at https://gnu.org/licenses/fdl.html
7
8
BOUNDED TYPE PARAMETERS
9
Bij generic typing worden doorgaans alle types toegelaten. Wenst men daarentegen een bepaalde selectie van types toe te laten (Bv. een machtsverheffing kan men moeilijk toepassen op een string), dan maakt men gebruik van bounded type parameters. De voorbeelden op https://docs.oracle.com/javase/tutorial/java/generics/bounded.html demonstreren hoe men dergelijk gedrag kan forceren.
10
Merk op dat het woord "extends" geen inheritance beschrijft. Dit is ook waarom het lijkt alsof multiple inheritance in Java gaat.
11
(In Java bestaat multiple inheritance, maar da's iets anders)
12
13
UNBOUNDED WILDCARDS
14
Dit is een principe een vorm van generic typing die complementair is met bounded type parameters; een unbounded wildcard accepteert elk mogelijk type.
15
Merk ook op dat het niet mogelijk is om objecten toe te voegen aan een list van unbounded wildcards; enkel null is mogelijk.
16
17
UPPER BOUNDED WILDCARDS
18
Dit is niet hetzelfde als bounded type parameters. In principe betekent dit dat men een class type geeft aan een unbounded wildcard (? extends eggs). Dit heeft als gevolg dat enkel de types worden toegelaten die ofwel van het type eggs zijn, of een subclass zijn van eggs (dus een class "spam extends eggs" voldoet aan de wildcard).
19