Antara muka dan kelas abstrak digunakan dalam Java untuk mereka bentuk seni bina dan menyediakan kontrak dan spesifikasi tingkah laku. Antara muka mentakrifkan tandatangan kaedah yang tidak dilaksanakan dan kelas yang melaksanakan antara muka mesti menyediakan pelaksanaan Kelebihannya termasuk penyahgandingan, penggunaan semula dan penguatkuasaan tingkah laku yang konsisten. Kelas abstrak mengandungi kaedah abstrak (tidak dilaksanakan) dan kaedah konkrit (dilaksanakan), dengan kelebihan termasuk pelaksanaan separa dan menghalang penciptaan objek yang tidak perlu. Perbezaan utama ialah antara muka mesti dilaksanakan sepenuhnya, manakala kelas abstrak boleh dilaksanakan sebahagiannya dan antara muka boleh dilaksanakan oleh berbilang kelas, manakala kelas abstrak hanya boleh mempunyai satu kelas induk. Antara muka sering digunakan untuk pelaksanaan perkhidmatan boleh pasang, manakala kelas abstrak digunakan untuk tingkah laku lalai yang dikongsi.
Di Java, antara muka dan kelas abstrak adalah cara utama untuk membina kod yang boleh diselenggara dan diperluaskan. Mereka membenarkan pembangun untuk menentukan kontrak atau menentukan tingkah laku tanpa perlu melaksanakan butiran.
Kelebihan:
Kelebihan:
Ciri-ciri | Antaramuka | Kelas abstrak |
---|---|---|
boleh melaksanakan sebahagian kaedah | ||
Tidak boleh instantiated | Tidak boleh instantiated secara langsung | |
boleh umum dan lalai | hanya boleh umum, dilindungi dan lalai | |
jadilah kelas induk | Kes praktikal |
interface DataProvider { List<Object> getData(); } class FileDataProvider implements DataProvider { @Override public List<Object> getData() { // 从文件读数据 } } class DatabaseDataProvider implements DataProvider { @Override public List<Object> getData() { // 从数据库读数据 } } // 使用不同的数据提供器读取数据 DataProvider dataProvider = new FileDataProvider(); List<Object> data = dataProvider.getData();
Kelas abstrak digunakan untuk berkongsi tingkah laku lalai:
abstract class Animal { protected String name; public Animal(String name) { this.name = name; } public abstract void speak(); public void eat() { // 默认吃饭行为 } } class Dog extends Animal { public Dog(String name) { super(name); } @Override public void speak() { System.out.println("汪汪"); } } // 创建并使用 Dog 对象 Dog dog = new Dog("Spot"); dog.speak(); // 输出 "汪汪" dog.eat(); // 使用 Animal 的默认吃饭行为
Atas ialah kandungan terperinci Aplikasi antara muka dan kelas abstrak dalam seni bina reka bentuk Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!