問題タブ [implements]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
methods - 非常に高度なメソッド/コンストラクター (Java) - 実際のポリモーフィック引数の受け入れ - Sintax
ポリモーフィック コンストラクターを宣言する方法はありますか? (過負荷にならないようにしてください!)。
1 つのクラスと 1 つのインターフェイスのインスタンスである引数を指定したいのですが、これらの両方で新しいクラスを作成したくありません (クラスはインターフェイスを実装します)。
コンストラクターを宣言したいのですが、通常は次の構文を使用します。
しかし、これらの引数「obj」は Class1 と Interface2 のインスタンスであり、次のように想像します。
...または、この引数に対してのみポリモーフィックを指定するその他の構文。クラスを作成したくありません: CubeRot extends Cube implement IRotable, すべてのキューブがこれらの機能を持っているわけではないからです. また、(Cube) CubeRot をキャストするという他のオプションは必要ありません。逆に、すべてのキューブを回転可能にします。おそらく IRotator は、キューブまたは他のクラスに実装することも、実装しないこともできます。
コンストラクターでチェックを使用したくありません。
新しいクラスを作りたくない
...すべてのキューブが回転できるわけではなく、キューブだけが回転を実装しているわけではないためです。
ジェネリック クラスを使用したくない:
... T はクラスであり、オブジェクト/引数が必要なためです。
そして、私も作成したくありませんNotImplementsRotationException
!投げ用。
多態的な引数が欲しい、本当の多態的なメソッドが欲しい
出来ますか?検索しましたが、コンストラクターでこれを行うための構文が見つかりませんでした。
他の言語 (おそらく C# または C++) の別のコード、ヘルプ ドキュメント、または定義ドキュメントで次のように見ました。
これは私にとって奇妙です。そして、これが私が望んでいることかどうかはわかりません。
ポリモーフィック コンストラクターが存在しない場合は、Oracle が作成する必要があると思います。とても便利です。
java - 別のインターフェイスを実装する回避策インターフェイス
ゲーム内のオブジェクトのいくつかのプロパティを定義しようとしているので、インターフェイスを使用してそれらを指定します。
インターフェイスを作成しましたが、Interactable
インターフェイスを作成したいと思います。これは、インタラクションが食べるためEatable
に明らかに実装されますInteractable
が、インターフェイスにメソッドを実装できないため、それはできません。
回避策はありますか?
java - SQLiteDatabase は「インターフェイスを実装していません」
SQLiteDatabaseをCloseableとして使用すると、このエラーが発生します
それを再作成するためのサンプル プロジェクトがあります。
https://github.com/blundell/SQLDatabaseError
SQLiteOpenHelperを拡張するクラスの場合:
スタックトレース:
API:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
http://developer.android.com/reference/android/database/sqlite/SQLiteClosable.html
http://developer.android.com/reference/java/io/Closeable.html
これはうまくいくはずですよね?
動作しません:
- Xperia Play Android 2.3.4
- モトローラ Xoom Android 4.0.4
動作します:
- サムスン ギャラクシー ネクサス Android 4.2
php - PHPのメソッドをオーバーライドしますか?
Javaのような他のオブジェクト指向言語では、関数をオーバーライドできます。これはimplements
、@override
などのキーワード/アノテーションを使用して可能です。
PHPでこれを行う方法はありますか?つまり、たとえば:
ユーザーに独自のmyClass::reImplementThis()
メソッドを実装してもらいたい。
PHPでそれを行うにはどうすればよいですか?可能であれば、オプションにすることはできますか?
つまり、ユーザーがメソッドを実装していない場合、デフォルトのメソッドを指定できますか、それともメソッドが定義されていないことを識別できますか(を使用してこれを行うことができますmethod_exists
)?
java - クラスを拡張し、Java でインターフェイスを実装します
しかし、
case-2がコンパイル エラーを表示する理由{ expected
。どうして ??ただし、case-1はエラーなしで実行されます。
java - インターフェイスを実装する抽象クラスの使用(Java)
私はこのインターフェースを持っています、
そして、このインターフェースを実装する2つの抽象クラス:
私のコードのどこかで、 kindOfAbstractClassに応じて、他のジョブの中でも、function doSomething(kindOfAbstractClass)
そのパフォーマンスを呼び出したいと思います。m1()
m3()
どうすれば定義して呼び出すことができますdoSomething()
か?私はこれをしましたが、機能していません。ありがとう
java - 拡張クラスのコンストラクタの実装方法
これは機能します:
しかし、このコンストラクターを記述するB(A a)
のは面倒で、実際には実用的ではなく、エラーが発生しやすいA
ですA
。
ABeanのクローンを実装できると思いますが、それには同様の問題があり(フィールドを追加/削除するときにクローンの実装を更新する必要があるため)、BBean(A a)
コンストラクターを持つこともできません。インターフェイスの一部も作成しない限り、BBean(ABean a)
コンストラクタのみです。clone()
それで...実装するためのよりクリーンでより良い方法はありますBBean(A a)
か?
java - パスの実装(拡張)
プログラムでファイル管理を処理できるオブジェクトを作成しようとしています。
パスインターフェイスには、必要なほとんどすべてのメソッドがありますが、カスタムメソッドをいくつか追加したいと思います。オブジェクトにPathを実装する場合、すべてのパスのメソッドをオーバーライドする必要があります。
インターフェイスのメソッドを実際にオーバーライドせずに、Pathインターフェイスのすべてのメソッドといくつかの追加のメソッドを持つオブジェクトを作成する方法はありますか?
ある意味、Pathインターフェースを拡張したいのですが、追加のメソッド本体も定義できるようになります。
java - Java: ジェネリックを使用するが型を制限するオブジェクトを拡張する方法
申し訳ありませんが、正しい用語を使用しているかどうかはわかりませんが、基本的にEntityList
はArrayListを拡張するというクラスを作成したいのですが、作成したインターフェースEntityInterface
が基本的にEで使用されるようにしたいですすべての瞬間なEntityList
ので、手動で宣言する必要はありません。
コードに関しては、これを入れられるようにしたい
これと同等の結果を得る
ここから先に進む方法が本当にわかりません。ここに問題への私の試みがありました。
問題を表示できる最善の方法は、arraylist がインスタント変数であるかのように表示することです。
ただし、これは基本的に私が望むものであり、ここでも可変形式であり、形式を拡張しません。
私がこのようなことをしたら、
このスレッドに基づいて動作するはずです。 ジェネリック: ? の ArrayList Java で ISomeInterface を拡張します
ただし、このコードを変更してEclipseで試した後:
および public class EntityList extends ArrayList { どちらも Eclipse でエラーをスローしていました。Java 6 を使用しています。使用しているサブバージョンがわかりません。それがエラーを修正する場合、私はJava 7を持っています。試してみます。