匿名クラスは、Javaでインターフェースを実装し、クラスを拡張するものとして宣言できますか?

質問者:Gor Zino |最終更新日:2020年5月26日
カテゴリ:テクノロジーおよびコンピューティングプログラミング言語
4.9 / 5 (544ビュー。36投票)
通常のクラスは任意の数のインターフェースを実装できますが、匿名の内部クラスは一度に1つのインターフェースしか実装できません。通常のクラスは、クラス拡張し、任意の数のインターフェースを同時に実装できます。ただし、匿名の内部クラスは、クラスを拡張したり、インターフェイスを実装したりできますが、一度に両方を実装することはできません。

ここで、Javaで匿名クラスをどのように実装しますか?

Java匿名内部クラスは、次の2つの方法で作成できます。クラス(抽象または具象の場合があります)。インターフェース。このコードの背後にある2つの主要なタスクを実行します。

  1. Eatable p = new Eatable(){
  2. void eat(){システム。アウト。 println( "素敵な果物");}
  3. };

上記のほかに、インターフェイスで変数を宣言できますか? Javaでは、インターフェースではインスタンス変数宣言できません。インターフェイスで宣言された変数をインスタンス変数として使用する、コンパイル時エラー返されます。インスタンス変数とは異なるstaticfinalを使用して、定数変数を宣言できます

さらに、Javaの匿名クラスとは何ですか?

Javaでは、クラスが入れ子になったクラスとして知られている別のクラスを含めることができます。名前を付けずにネストされたクラスを作成することは可能です。名前のないネストされたクラスは、匿名クラスと呼ばれます。匿名クラスは、別のクラス内で定義する必要があります。したがって、匿名内部クラスとも呼ばれます。

インターフェイス内にクラスを作成できますか?

はい、Javaインターフェース内にネストされたクラスまたは内部クラスの両方を作成できます(一般的な信念に反して、「静的内部クラス」のようなものはありません。これは単に意味がなく、「内部」も「内部」もありません。ネストされたクラスが静的である場合は「outter」クラスであるため、「staticinner」にすることはできません。

39関連する質問の回答が見つかりました

hashCode()とequals()は何に使用されますか?

hashCode()およびequals()メソッドの使用
equals (Object otherObject)–メソッド名が示すように、2つのオブジェクトの同等性を単純に検証するために使用されます。デフォルトの実装では、2つのオブジェクトのオブジェクト参照をチェックして、それらが等しいことを確認します。

匿名クラスはコンストラクターを持つことができますか?

匿名クラスには、定義上、名前ありません。コンストラクターの名前はクラスの名前と同じでなければならないため、匿名クラスのコンストラクターを宣言することはできません。また、問題のクラス名前ないため、クラスのコンストラクターを宣言することはできません。

インターフェイスのオブジェクトを作成できますか?

NO我々は、ユーザからの実装を非表示にするインターフェイスを使用し、インタフェースオブジェクトを作成するカント。インターフェイスには抽象メソッドのみが含まれ、抽象メソッドに(実装コードの)本体ないため、コンストラクターなしでオブジェクト作成することできません。

Javaの内部クラスの目的は何ですか?

Javaの内部クラスまたはネストされたクラス、すなわちクラスまたはインタフェース内で宣言されたクラスです。内部クラスを使用して、クラスとインターフェイスを1つの場所に論理的にグループ化、読みやすく、保守しやすくします。さらに、プライベートデータメンバーとメソッドを含む外部クラスのすべてのメンバーにアクセスできます。

Javaのシングルトンクラスとは何ですか?

Javaのシングルトンクラス。オブジェクト指向プログラミングでは、シングルトンクラスは、一度に1つのオブジェクト(クラスのインスタンス)のみを持つことができるクラスです。シングルトンクラスを設計するには:コンストラクターをプライベートとして作成します。このシングルトンクラスの戻り型オブジェクトを持つ静的メソッドを記述します。

Javaのラムダとは何ですか?

Javaラムダ式は、関数型プログラミングへのJavaの最初のステップです。したがって、 Javaラムダ式は、クラスに属さずに作成できる関数です。 Javaラムダ式は、単純なイベントリスナー/コールバックを実装するため、またはJava StreamsAPIを使用した関数型プログラミングで一般的に使用されます。

匿名の内部クラスを作成する2つの方法は何ですか?

匿名内部クラスは、主に2つの方法で作成さますクラス(抽象クラスまたは具象クラスの場合があります)匿名クラスでは、次のように宣言できることに注意してください。
  1. 田畑。
  2. 追加のメソッド(スーパータイプのメソッドを実装していない場合でも)
  3. インスタンス初期化子。
  4. ローカルクラス。

インターフェイス内でクラスを定義できますか?

はい、インターフェイス内でクラスを定義できます。一般に、インターフェイスのメソッドがこのクラスを使用し、他の場所で使用していない場合インターフェイス内でクラスを宣言します

Javaのジェネリッククラスとは何ですか?

JavaGenericsは、ジェネリック型とメソッドの定義と使用を可能にする言語機能です。」ジェネリック型は、仮型パラメータを置き換える実際の型引数を提供することで、パラメータ化された型を形成するためにインスタンス化されます。 LinkedList <E>のようなクラスジェネリック型であり、型パラメーターEを持っています。

Javaで有効なキーワードはどれですか?

Javaで有効なキーワードはどれですか?説明:インターフェースは有効なキーワードです。 「String」はJavaのクラス型ですが、「string」はキーワードではないため、オプションBは間違っています。

Javaでのシリアル化とは何ですか?

シリアル化は、オブジェクトの状態をバイトストリームに変換するメカニズムです。デシリアライズは、バイトストリームを使用してメモリ内に実際のJavaオブジェクトを再作成する逆のプロセスです。 Javaオブジェクトをシリアライズ可能にするために、 javaを実装します。 io。シリアル化可能なインターフェイス。

抽象クラスのオブジェクトを作成できますか?

それは抽象的であり、オブジェクトは具体的だからです。いいえ、デザイナーは方法を提供しませんでした。抽象クラスは不完全なクラスであるため(本体と出力のない抽象メソッドが含まれているという意味で不完全です)、インスタンスまたはオブジェクトを作成することできません。あなたがインターフェースについて言うのと同じように。

インナークラスは決勝できますか?

トップレベルクラスをfinalにすることと内部クラスをfinalにすることの間に意味的な違いはありません。それは、クラスから継承できないことをコンパイラに通知します。クラスをfinalとしてマークすることは、コンパイラーが仮想テーブルのルックアップをスキップできるようにするために行われることがありますが、これは多くの場合、時期尚早のマイクロ最適化と見なされます。

Javaでランタイムポリモーフィズムを実現するにはどうすればよいですか?

メソッドのオーバーロードとメソッドのオーバーライドにより、Javaでポリモーフィズム実行できます。ダイナミック(実行時間多型は、実行時に存在していた多型です。ここで、 Javaコンパイラは、コンパイル時にどのメソッドが呼び出されるかを理解しません。実行時に呼び出されるメソッドを決定するのはJVMのみです。

Javaの抽象クラスとは何ですか?

Java抽象クラスとメソッド
抽象クラス:オブジェクトの作成に使用できない制限付きクラスです(オブジェクトにアクセスするには、別のクラスから継承する必要があります)。抽象メソッド:抽象クラスでのみ使用でき、本体はありません。本体はサブクラス(から継承)によって提供されます。

Javaの静的クラスとは何ですか?

静的クラスは基本的に、 Javaでクラスをグループ化する方法です。 Javaでは、トップレベルの静的クラスを作成することはできません。ネストされた(内部の)静的クラスのみ。静的クラスをインスタンス化し、静的Wheelクラスからオブジェクトを作成するには、クラスでnewを個別に使用する必要があります。

Javaのローカルクラスとは何ですか?

ローカルクラスローカルクラスは、クラスのメンバーとしてではなく、 Javaコードのブロック内でローカルに宣言されます。ローカルクラスの特徴は、コードブロックに対してローカルであるということです。ローカル変数と同様に、ローカルクラスは、それを囲むブロックによって定義されたスコープ内でのみ有効です。