[TIL]マルチフォーム
2486 ワード
1)再利用の実現方法
1-1)サブクラスとして実装する方法(overrideを使用)
個体数が徐々に増加するという問題がある.
補足内容のみなので個体数を増やす必要はありません.
1-2)コードの挿入方法
様々な形式のコードを真ん中に挿入します.
これを多形性と呼ぶ.
これらのコードを結合する方法で変更します.
異なるコードを結合することを約束し、約束の部分でこれらのコードを結合します.
2)コネクタ
2-1)インタフェースを使用するメリット
インタフェースを定義すれば、私は~をすることができます.
大きな違いがあるかもしれませんが、私の専門性が悪いので、他のメーカーを使ってもいいです.
インタフェース関数を作成するのも同じです!定義しただけでお任せします.
インタフェースの形式で各種のコードの形式を結合します!
2-2)インタフェースの例
public class ExamConsole {
private ConsoleListener listener;
public void print(){
...
onPrint();
...
}
public void Input() {
...
onInput();
...
}
public interface ConsoleListener {
void onPrint();
void onInput();
}
約束したプログラムクラス
public static void main(String[] args) {
NewlecExam exam = new NewlecExam();
ExamConsole console = new ExamConsole();
console.setExam(exam);
console.setListener(?);
console.input();
console.print();
}
}
コンセプト検証の問題
(ただし、Cオブジェクトは構成関係によって継承されます.)
public class A extends B{
private C c;
public A(){
c= new C();
}
}
関連関係としてMissile形式のオブジェクトミサイルを含む(2)Fighterクラスとmove()、fire()の機能が異なる飛行機は、moveItemクラスとして抽象化してください.
(3)MoveItem抽象クラスを定義し,ここでmove()メソッド,fire()メソッドを抽象メソッドとして作成し,コードを作成して継承して上書きする.
public class Fighter extends MoveItem {
private Missile missile;
public void setMissile(Missile missile){
this.missile = missile;
}
public move() {
return move;
}
public fire() {
return fire;
}
}
public abstract class MoveItem {
protected abstract void move();
protected abstract void fire();
}
Reference
この問題について([TIL]マルチフォーム), 我々は、より多くの情報をここで見つけました https://velog.io/@psh94/TIL-다형성-인터페이스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol