問題文: それぞれ異なるメソッドを実装し、それぞれ独自のメソッドを実装する複数のクラスファイル(~200 +)があります。メソッド。複数のクラスを参照する単一のJavaクラス/インタフェースを実装する
コードでこれらのクラスメソッド(〜20-30)を複数呼び出すと、UI Webページへの書き込みやWebページからの読み込みなどの機能を提供することができます。
このプロセスを簡単にしたいので、これらの複数のクラス参照(〜200 +)を含む単一のクラス/インタフェースが必要です。この単一のクラス/インタフェースをコードにインポート/それを使ってクラスファイルのすべてのメソッドを参照します。
質問: 上記は可能ですか?もしそうなら、どうやってクラスやインターフェースなどを使うのでしょうか?
私は例と我々はここにしようとしているかの情報を提供していますImplement multiple classes in the same interface in Java?
は基本的に、我々はANの作成
- を試してみました複数のクラスに渡って実装されているインターフェイス(上記の〜200 +)
- クラスとインターフェイスを実装しました
いいえ、うまくいかないようです。
コードで欲しいものの要点として、以下の例を挙げてください。
例(これはちょうど私たちは、コードで何をしたいのかの例を提供したかった、右のコードや実装ではありません):
私は「ABC_FamilyGivenNameと呼ばれる2つのクラスを持っています"&" ABC_DOBGender "。 私は、インターフェイス "コモン"を作成しました。
上記の両方のクラスのメソッドをクラス「アプリケーション」のコードで使用したいとします。現在の実装では
、Javaは私が ABC_DOBGender ABC_FamilyGivenName & の両方に@Overrideを追加したいです。 これは〜500のメソッドがある場合にはオーバーヘッドを再度作成するので、c〜200クラスファイルのすべて〜500をオーバーライドする必要があります ??
***INTERFACE***:
public interface Common {
void ABC_GivenNames();
void ABC_FamilyNames();
void ABC_Gender();
void ABC_BirthDay();
}
***IMPLEMENTATION CLASSES***:
**ABC_FamilyGivenName**
public class ABC_FamilyGivenName extends Base implements Common {
public void ABC_GivenNames(){
// Implementation code
}
public void ABC_FamilyNames(){
// Implementation code
}
}
**ABC_DOBGender**
public class ABC_DOBGender extends Base implements Common {
public void ABC_Gender(){
// Implementation code
}
public void ABC_BirthDay(){
// Implementation code
}
}
**USE IMPLEMENTED CLASS IN CODE**:
public class Application extends Base {
Common commonClass = new ABC_FamilyGivenName();
/* *DO I NEED THIS? I THINK I DO, BUT CODE/JAVA SAYS I DO NOT*
* Common commonClass = new ABC_DOBGender();
*/
public void ELP_C0050_PassportDetails(){
commonClass.ABC_GivenNames();
commonClass.ABC_FamilyNames();
commonClass.ABC_DOB();
commonClass.ABC_Gender();
}
}
私はあなたのコードをよく理解していませんが、ジェンダーとfamilynameが実装されている「共通」があることです。インターフェイスは、似たような異なるクラスに共通のメソッドを実装するために使用されます。したがって、どちらのクラスにも1つのクラス、またはそれぞれに2つの別々のインターフェイスを持つ方が理にかなっています。あなたのインターフェースは、両方の実装クラスにオーバーライドされたすべての抽象メソッドを強制します。 – SynchroDynamic
@SynchroDynamicはいこれは私たちがやっていることだと思っていますが、私たちの問題の解決策ではありません。私が提供したコードは、私たちが問題の解決策として必要としていることを実行しておらず、ユーザーが使いやすく、インポートするために複数のクラスを覚えていないようにするために、 as new() – gagneet
あなたのインスタンスでは、あなたがしようとしていることに基づいて、コンポーネントクラスを構築することを検討する必要があります。このようにして、特定のオブジェクト型を取得するためのインタフェースを構築できます。私は、例を挙げてうれしいです。それは助けるかもしれません。それはできません。 – SynchroDynamic