この記事では、Java インターフェイスと抽象クラスの概要 (コード例) を紹介します。必要な方は参考にしていただければ幸いです。
インターフェイス:
(1)インターフェイスで定義された変数は、これらの修飾子が明示的に修飾されているかどうかに関係なく、パブリックの静的な最終型であり、明示的に初期化する必要がありますそうでない場合は、エラーが報告されます:
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; } }
抽象クラス:
(1)
抽象クラスは次のとおりです。通常のクラスと同様に、通常の変数、実装されたメソッド、および関数を持つことができますが、インスタンス化することはできず、継承するためにのみ使用できます。;
通常のメソッドにはメソッド本体が必要です。メソッドはメソッド本体を持ち込むことができません。
/** * 抽象类Class2实现Interface2接口,可以只实现方法method1 */ public abstract class Class2 implements Interface2 { @Override public String method1() { // TODO Auto-generated method stub return null; } }
インターフェイスと抽象クラスの間には、もう 1 つの大きな違いがあります。
クラスは複数のインターフェイスを実装できますが、継承のみが可能です。 1 つのクラス;
実際のアプリケーションでは、これが最も一般的に使用されます。複数のインターフェイスの実装に共通の部分がある場合は、この部分を抽象クラスに抽出して、その抽象クラスを継承することを検討できます。クラス。言い換えれば、抽象クラスはパブリック メソッドの実装を提供し、迅速に開発して均一に管理できるため、クラスが密結合の問題を発生させることなくすべての独自メソッドを完全に実装できるようになります。
以上がJava インターフェイスと抽象クラスの概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。