Bagaimana kelas anonim memperluas superclass atau mengimplementasikan antarmuka?
java
anonymous-class
Mike Rylander
sumber
sumber
Jawaban:
Kelas anonim harus memperluas atau mengimplementasikan sesuatu, seperti kelas Java lainnya, meskipun itu hanya
java.lang.Object
.Sebagai contoh:
Di sini,
r
adalah objek dari kelas anonim yang diimplementasikanRunnable
.Kelas anonim dapat memperluas kelas lain menggunakan sintaks yang sama:
Apa yang tidak dapat Anda lakukan adalah menerapkan lebih dari satu antarmuka. Anda membutuhkan kelas bernama untuk melakukan itu. Baik kelas dalam anonim, maupun kelas bernama, bagaimanapun, dapat memperluas lebih dari satu kelas.
sumber
SomeClass
. Itu masih anonim, karena{...}
.Kelas anonim biasanya mengimplementasikan antarmuka:
Jika yang Anda maksud adalah apakah Anda dapat menerapkan 2 atau lebih antarmuka, daripada yang saya pikir itu tidak mungkin. Anda kemudian dapat membuat antarmuka pribadi yang menggabungkan keduanya. Meskipun saya tidak dapat dengan mudah membayangkan mengapa Anda menginginkan kelas anonim memiliki itu:
sumber
Kelas anonim selalu memperluas superclass atau mengimplementasikan antarmuka. sebagai contoh:
Selain itu, meskipun kelas anonim tidak dapat mengimplementasikan banyak antarmuka, Anda dapat membuat antarmuka yang memperluas antarmuka lain dan membiarkan kelas anonim Anda menerapkannya.
sumber
Saya kira tidak ada yang mengerti pertanyaan itu. Saya rasa yang diinginkan orang ini adalah seperti ini:
karena ini akan memungkinkan hal-hal seperti implementasi beberapa antarmuka:
ini akan sangat menyenangkan; tapi itu tidak diperbolehkan di Jawa .
Yang dapat Anda lakukan adalah menggunakan kelas lokal di dalam blok metode:
sumber
sumber
Kelas anonim memperluas atau mengimplementasikan saat membuat objeknya. Misalnya:
Di sini kelas anonim mengimplementasikan Antarmuka.
di sini Kelas anonim memperluas Kelas abstrak.
sumber