java - 抽象类和接口?
PHP中文网
PHP中文网 2017-04-18 10:11:05
0
9
476
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(9)
黄舟

Sebagai contoh, sebagai contoh, makhluk dan manusia Pada masa ini, makhluk boleh digunakan sebagai antara muka, orang boleh digunakan sebagai kelas abstrak yang melaksanakan organisma, dan lelaki dan wanita boleh digunakan sebagai kelas pelaksanaan konkrit direka seperti ini? Oleh kerana biologi adalah konsep yang sangat abstrak, sukar untuk anda mengabstrakkan tingkah laku khususnya (iaitu, pelaksanaan kaedah khusus, pada masa ini, ia boleh digunakan sebagai antara muka Mengapa manusia boleh digunakan sebagai kelas abstrak ia boleh mempunyai tingkah laku dan tindakan tertentu Sebagai contoh, anda boleh merangkak pergi, tetapi lelaki dan wanita mungkin mempunyai ciri seksual yang berbeza Pada masa yang sama, mungkin terdapat beberapa tingkah laku awam tetapi ciri tingkah laku yang berbeza daripada kelas abstrak dan dibenarkan untuk dilaksanakan oleh subkelas. Itu mungkin.

Peter_Zhu

Sebagai contoh, anda mempunyai banyak objek yang serupa (setelah difikirkan lama, tidak sesuai untuk menggunakan perkataan lain), sama ada orang atau benda. Sifat mereka hampir sama, jadi anda boleh mengabstrakkannya ke dalam kelas. Sebagai contoh, kategori kereta mempunyai atribut seperti roda, enjin, casis dan cengkerang. baru objek untuk menyimpan atribut semasa Mungkin anda ingin menyimpan atribut ini ke pangkalan data, atau anda mungkin mahu memaparkannya kepada pengguna. Objek bukan sahaja boleh menyimpan data, tetapi juga mempunyai kaedah mereka sendiri, seperti memulakan kereta. Klik butang untuk memanggil kaedah pelancaran objek semasa. Kaedah kelas umum akan dikaitkan dengan perubahan dalam data Saya bercakap tentang kaedah umum, bukan semua. Sebagai contoh, kelas sambungan pangkalan data tidak akan mengubah data, tetapi hanya memainkan peranan dalam menyambung ke pangkalan data.
Antara muka biasanya untuk panggilan luaran. Anda menulis satu siri kaedah yang akhirnya mencapai tindakan yang berguna. Permulaan siri kaedah ini ialah antara muka, anda boleh memahaminya dengan cara ini. Sebagai contoh, dalam antara muka log masuk yang mudah, selepas anda memasukkan nama pengguna dan kata laluan, klik OK untuk mula memanggil antara muka log masuk latar belakang, dan memindahkan nama pengguna dan kata laluan ke pelayan Pelayan memerlukan kaedah untuk menerimanya, dan selepas menerimanya , ia perlu mengesahkan kata laluan, iaitu kaedah lain. Selepas pengesahan, mesej dikembalikan kepada pelanggan. Log masuk berjaya atau gagal, dan siri tindakan ini telah selesai. Sudah tentu, anda boleh melengkapkan ini dalam kaedah Ringkasnya, titik permulaan adalah antara muka.
Pernyataan di atas agak mudah dan tidak tepat sepenuhnya.

Ty80

Antara muka mewakili keupayaan/kelakuan. Contohnya: jika orang boleh berlari dan anjing boleh berlari, anda boleh menentukan antara muka IRunable. Antara muka ialah cara yang baik untuk mencapai penyahgandingan antara komponen.
Kelas abstrak direka bentuk untuk mencapai polimorfisme dan menjadikan kod lebih mudah diperluaskan.

刘奇

Antara muka adalah seperti 100% kelas abstrak semula jadi.

迷茫

Antara muka lebih cenderung untuk menentukan protokol untuk sekumpulan kelas, manakala kelas abstrak telah mengambil langkah ke arah pelaksanaan.

Sebagai contoh, corak kaedah templat menggunakan kelas abstrak untuk melaksanakan beberapa kaedah biasa, sambil menunda kaedah berbeza kepada subkelas untuk pelaksanaan.

阿神

Untuk contoh mudah, jika anda kini ingin mengabstrakkan orang dari semua negara, maka anda akan berfikir untuk mengabstrakkannya ke antara muka, dan kemudian terdapat kaedah yang dipanggil sayHello:

public interface Human{
    
    String sayHello();
}

OK, kini setiap objek yang melaksanakan antara muka ini hanya perlu melaksanakan kaedah sayHello, yang bermaksud bahawa orang dari pelbagai negara mempunyai cara yang berbeza untuk menyapa satu sama lain.

Tetapi kini perniagaan telah menjadi lebih rumit, anda memerlukan orang ini untuk mempunyai beberapa keupayaan umum, seperti cry, walk Kemudian pada masa ini, sekiranya anda mempertimbangkan untuk mengabstraksikan Human ke dalam kelas abstrak, seperti Seperti ini:

public abstract class Human{
    
    public abstract String sayHello();
    
    public String cry(){
        System.out.println("wu~wu~wu~wu~wu~");
    }
    
    public String walk(){
        System.out.println("左右左 左右左");
    }
}

Untuk meringkaskan, jika terdapat kaedah abstrak, maka gunakan antara muka Jika terdapat kaedah konkrit umum, gunakan kelas abstrak

刘奇

参考:
Tutorial Java™ :: Learngin The Java Language :: Antara Muka dan Warisan :: Warisan :: Kaedah dan Kelas Abstrak :: Kelas Abstrak Berbanding Antara Muka

黄舟

Kelas abstrak digunakan untuk perkara abstrak, antara muka tingkah laku abstrak

左手右手慢动作

Kelas ini mentakrifkan operasi bersatu dan menyediakan kaedah untuk objek

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan