本篇文章给大家带来的内容是关于java接口和抽象类的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
接口:
(1)接口内定义的变量都是public static final类型的,无论是否显示限定这些修饰符,且必须要被显式初始化,否则报错:
public interface Interface1 { /** * VARIABLE1显式添加public static final修饰符 * VARIABLE2隐式含有public static final修饰符 */ public static final String VARIABLE1="AAA"; String VARIABLE2="BBB"; /** * VARIABLE3未显式初始化,代码变异报错: * The blank final field VARIABLE3 may not have been initialized */ String VARIABLE3; }
(2)接口内定义的方法都是抽象方法,即不包含任何方法实现:
a.如果实现接口的类是普通类(非抽象类),则要实现该接口的所有方法,否则编译报错;
b.如果实现接口的类是抽象类,则可以只实现该接口的部分方法,否则抛出异常;
public interface Interface2 { /** * method1方法定义显式添加public abstract修饰符 * method2方法隐式含有public abstract修饰符,两个方法都是抽象方法 */ public abstract String method1(); String method2(); }
/** * 普通类Class1实现Interface2接口,必须实现所有接口方法 * */ public class Class1 implements Interface2 { @Override public String method1() { // TODO Auto-generated method stub return null; } @Override public String method2() { // TODO Auto-generated method stub return null; } }
/** * 抽象类Class2实现Interface2接口,可以只实现方法method1 */ public abstract class Class2 implements Interface2 { @Override public String method1() { // TODO Auto-generated method stub return null; } }
抽象类:
(1)抽象类也是类,跟一般类一样可以有普通的变量、带实现的方法,可以有构造函数,但不能被实例化,只能用来继承;
普通方法必须带方法体,抽象方法不能带方法体;
public abstract class AbstractClass1 { String variable1;//普通变量 public static final String VARIABLE2="AAA";//定义静态常量 public void method1(){ }//普通方法,必须有方法体 abstract void method2();//抽象方法,不能有方法体 AbstractClass1(){//可以定义构造函数,但抽象类不能实例化,只能被继承 System.out.println("此为构造函数"); } }
接口和抽象类还有一个最大的不同,一个类可以实现多个接口,但只能继承一个类;
在实际应用中,接口是最为常用的,如果多个接口的实现有公共的部分,则可以考虑将这部分内容提取到抽象类中,然后继承该抽象类。也就是说,抽象类提供公共方法的实现,可以快速开发且统一管理,又允许你的类完全实现自己的所有方法,不会出现紧耦合的问题。
Atas ialah kandungan terperinci java接口和抽象类的介绍(代码示例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1) jvmvariationsaffecperformanceandbehavioracrossdifferentos.2) nativelibrariesviajniintroduceplatform-specificiSsues.3)

Kod Java akan mempunyai perbezaan prestasi apabila berjalan pada platform yang berbeza. 1) Strategi pelaksanaan dan pengoptimuman JVM adalah berbeza, seperti OracleJDK dan OpenJDK. 2) Ciri -ciri sistem operasi, seperti pengurusan memori dan penjadualan thread, juga akan menjejaskan prestasi. 3) Prestasi boleh ditingkatkan dengan memilih JVM yang sesuai, menyesuaikan parameter JVM dan pengoptimuman kod.

Java'splatformindecthaslimitationscludingperformanceOverhead, VersionCompateIssues, cabaranwithnativelibraryintegration, platform-specificfeatures, danjvminstallation/penyelenggaraan.

Platformindependenceallowsprogramstorunonanyplatformwithoutmodification,whilecross-platformdevelopmentrequiressomeplatform-specificadjustments.Platformindependence,exemplifiedbyJava,enablesuniversalexecutionbutmaycompromiseperformance.Cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

Javaispopularforcross-platformdesktopapplicationsduetoits "writeOnce, runanywhere" falsafah.1) itusesBytecodethatrunsonanyjvm-equippedplatform.2) LibrariesLikeswingandjavafxhelpcreatenativeS.3) ITseShipBareSivaryS

Alasan untuk menulis kod khusus platform di Java termasuk akses kepada ciri sistem operasi tertentu, berinteraksi dengan perkakasan tertentu, dan mengoptimumkan prestasi. 1) Gunakan JNA atau JNI untuk mengakses Windows Registry; 2) Berinteraksi dengan pemandu perkakasan khusus Linux melalui JNI; 3) Gunakan logam untuk mengoptimumkan prestasi permainan pada macOS melalui JNI. Walau bagaimanapun, menulis kod khusus platform boleh menjejaskan mudah alih kod, meningkatkan kerumitan, dan berpotensi menimbulkan risiko overhead dan keselamatan.

Java akan meningkatkan lagi kemerdekaan platform melalui aplikasi awan asli, penempatan pelbagai platform dan interoperabilitas silang bahasa. 1) Aplikasi asli awan akan menggunakan GraalVM dan Quarkus untuk meningkatkan kelajuan permulaan. 2) Java akan diperluaskan ke peranti tertanam, peranti mudah alih dan komputer kuantum. 3) Melalui Graalvm, Java akan mengintegrasikan dengan lancar dengan bahasa seperti Python dan JavaScript untuk meningkatkan interoperabilitas silang bahasa.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
