[解決済み】インプリメントとエクステンド。いつ使う?その違いは何ですか?
2022-03-23 16:09:25
質問
わかりやすい言葉で説明するか、何かの記事へのリンクを張ってください。
どのように解決するのですか?
extends
は
エクステンド
クラスがあります。
implements
は
実装
インターフェース
インターフェースと通常のクラスの違いは、インターフェースでは宣言されたメソッドを一切実装できないことです。 メソッドを実装できるのは、インターフェイスを実装したクラスだけです。 C++のインターフェイスに相当するのは抽象クラスです(完全に同じではありませんが、ほぼ同じです)。
また、javaは 多重継承 をクラスで使用することができます。これは、複数のインターフェースを使うことで解決します。
public interface ExampleInterface {
public void doAction();
public String doThis(int number);
}
public class sub implements ExampleInterface {
public void doAction() {
//specify what must happen
}
public String doThis(int number) {
//specfiy what must happen
}
}
今度はクラスを拡張する
public class SuperClass {
public int getNb() {
//specify what must happen
return 1;
}
public int getNb2() {
//specify what must happen
return 2;
}
}
public class SubClass extends SuperClass {
//you can override the implementation
@Override
public int getNb2() {
return 3;
}
}
この場合
Subclass s = new SubClass();
s.getNb(); //returns 1
s.getNb2(); //returns 3
SuperClass sup = new SuperClass();
sup.getNb(); //returns 1
sup.getNb2(); //returns 2
また
@Override
タグはインターフェイスの実装には必要ありません。なぜなら、本来のインターフェイスのメソッドである
をオーバーライドする
についてもう少し調べてみることをお勧めします。 オブジェクト指向プログラミングにおけるダイナミックバインディング、ポリモーフィズム、一般的な継承について
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み】Apache Camelとは一体何ですか?
-
[解決済み] TypeScriptの「extends」と「implements」の違いとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] インターフェースと抽象クラス(一般的なOO)