Interface dan Desain

Interface, metode default dan static, pemrograman ke interface, interface fungsional, dan enum.

Modul ini menuntaskan perangkat desain berorientasi objek yang diletakkan oleh dua modul sebelumnya. Kontrak interface dideklarasikan, dilekatkan pada banyak kelas, lalu dikembangkan lewat metode default dan static tanpa merusak implementasi lama, dan kebiasaan pemrograman ke interface diterapkan pada collections pustaka standar. Bagian akhirnya mengenalkan interface fungsional sebagai fondasi lambda serta melengkapi enum dengan konstruktor, metode, EnumSet, EnumMap, dan perannya sebagai singleton. Setelah modul ini selesai, kode dapat dirancang terhadap tipe kontraknya, bukan terhadap kelas konkretnya.