Rumah > Java > javaTutorial > Bolehkah Kaedah Overridden di Java Mempunyai Jenis Pulangan Berbeza?

Bolehkah Kaedah Overridden di Java Mempunyai Jenis Pulangan Berbeza?

Mary-Kate Olsen
Lepaskan: 2024-11-30 13:12:11
asal
485 orang telah melayarinya

Can Overridden Methods in Java Have Different Return Types?

Kaedah Overriding dan Varian Jenis Pulangan

Bolehkah kaedah overridden berbeza dalam jenis return?

Sokongan Java untuk jenis pulangan kovarian membenarkan kaedah yang diganti untuk memiliki jenis pulangan yang lebih spesifik daripada kaedah yang mereka gunakan override.

Jenis pemulangan kaedah mengatasi mesti boleh diserahkan kepada jenis pemulangan kaedah yang diganti. Contohnya:

class ShapeBuilder {
    ...
    public Shape build() {
    ....
}

class CircleBuilder extends ShapeBuilder{
    ...
    @Override
    public Circle build() {
    ....
}
Salin selepas log masuk

Mengikut Spesifikasi Bahasa Java (bahagian 8.4.5), kebolehgantian jenis pulangan dibenarkan jika:

  • Jenis pulangan ialah jenis rujukan, dengan R1 (jenis pemulangan kaedah yang ditindih) sama ada subjenis R2 (jenis pemulangan kaedah mengatasi) atau boleh ditukar kepada subjenis melalui tidak ditandai penukaran.
  • R1 ialah pemadaman R2 (mengalih keluar parameter jenis).

Gelagat Warisan (Java 5 dan Sebelumnya)

Sebelumnya kepada Java 5, kaedah yang diganti mempunyai jenis pulangan invarian, bermakna mereka perlu memadankan jenis pulangan kaedah yang diganti betul-betul.

Atas ialah kandungan terperinci Bolehkah Kaedah Overridden di Java Mempunyai Jenis Pulangan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan