Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //listOf actually creates a List<T>
- //student > person List<Student> > List<Person> the relation is variance
- // invariant
- // why invariant?
- open class Person(val name: String)
- class Student(name: String): Person(name)
- fun main(){
- val names: List<String> = listOf("John", "Sarah", "Mark")
- val ranks: List<Int> = listOf(3, 5, 6)
- val student: Student = Student("John")
- val person: Person = student
- val students: MutableList<Student> = mutableListOf(Student("Jack"), Student("Sarah"))
- val persons: MutableList<Person> = students
- }
- // why invariant?
- open class Person(val name: String)
- class Student(name: String): Person(name)
- class Teacher(name: String): Person(name)
- fun add(group: MutableList<Person>, person: Person) = group.add(person)
- fun main(){
- val students: MutableList<Student> = mutableListOf()
- val teacher: Teacher = Teacher("John")
- add(students, teacher)
- val student: Student = students.get(0)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement