Rumah > Java > javaTutorial > Aplikasi antara muka dan kelas abstrak dalam seni bina reka bentuk Java

Aplikasi antara muka dan kelas abstrak dalam seni bina reka bentuk Java

王林
Lepaskan: 2024-05-02 14:18:02
asal
526 orang telah melayarinya

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.

接口和抽象类在 Java 设计架构中的应用

Aplikasi antara muka dan kelas abstrak dalam seni bina reka bentuk Java

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.

Antaramuka

  • Definisi: Antara muka ialah kontrak yang secara eksplisit menyatakan tandatangan kaedah tetapi tiada pelaksanaan. Kelas yang melaksanakan antara muka ini mesti menyediakan pelaksanaan kaedah ini.
  • Kelebihan:

    • Antara muka dan pelaksanaan yang dipisahkan.
    • Galakkan penggunaan semula dan kebolehgantian kod.
    • Menguatkuasakan tingkah laku yang betul.

Kelas Abstrak

  • Definisi: Kelas abstrak ialah kelas yang tidak boleh digunakan secara langsung. Ia mengandungi kaedah abstrak (tanpa pelaksanaan) dan kaedah konkrit (dengan pelaksanaan).
  • Kelebihan:

    • Separa melaksanakan tingkah laku perkongsian.
    • Menghalang penciptaan objek yang tidak diingini.
    • Sediakan tingkah laku lalai untuk mengurangkan kod pendua.

Perbezaan antara antara muka dan kelas abstrak

pelaksanaaninstantiationHak akses boleh digunakan secara berskalaKes praktikal
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
Antara muka digunakan untuk melaksanakan perkhidmatan boleh pasang:

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();
Salin selepas log masuk

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 的默认吃饭行为
Salin selepas log masuk

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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan