다른 상속 클래스 내부의 상속 클래스

Merdigon

Java의 상속에 문제가 있습니다. 나는 군대의 예를 사용할 것입니다.

public class Soldier {
    Squad squad;

    public Soldier(Squad _squad) {
        squad = _squad;
    }
    //and some methods, that use squad 
}

그리고 나는 가졌다:

public class Archer extends Soldier {
    public Archer(ArcherSquad _squad) {
        super(_squad);
    }
    //some new methods, some override 
}

과:

public class Warrior extends Soldier {
    public Warrior(WarriorSquad _squad) {
        super(_squad);
    }
    //some new methods, some override 
}

내 분대는 다음과 같습니다.

Squad;
ArcherSquad extends Squad(some new methods);
WarriorSquad extends Squad(some new methods);

지금은 메소드에 액세스 할 ArcherSquad에서 Archer. 아무것도 끊지 않고 코드를 어떻게 변경할 수 있습니까?

zapl

분대에 대한 참조를 최대로 이동할 수 있습니다. ArcherSquad

public abstract class Soldier {
    // force subclass supply some squad
    protected abstract Squad getSquad();
    public void someMethod() {
        Squad squad = getSquad();
        // do something with it.
    }
}

public class Archer extends Soldier {
    private ArcherSquad archerSquad;
    public Archer(ArcherSquad _squad) {
        archerSquad = _squad;
    }
    @Override
    protected Squad getSquad() {
        return archerSquad;
    }
    ...
}

또는 Soldier일반 클래스로 전환 할 수 있습니다.

public class Soldier<T extends Squad> {
    protected T squad;

    public Soldier(T _squad) {
        this.squad = _squad;
    }

    public void someMethod() {
        Squad squad = this.squad;
        // do something with it.
    }
}

public class Archer extends Soldier<ArcherSquad> {

    public Archer(ArcherSquad _squad) {
        super(_squad);
    }

    public void someMethodUsingArcherSquad() {
        ArcherSquad as = squad;
    }
    // some new methods, some override
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

클래스 A 내의 클래스 B는 클래스 A를 상속합니다.

분류에서Dev

상속을 위해 다른 클래스의 클래스 보내기

분류에서Dev

클래스의 상속. C ++

분류에서Dev

클래스의 Java 상속

분류에서Dev

다른 클래스의 다른 속성에서 css 속성 상속

분류에서Dev

상속의 하위 클래스와 상속에서 다른 클래스 간의 다중성 표시

분류에서Dev

다른 추상 및 비추 상 클래스에 의한 추상 클래스 상속

분류에서Dev

내부 템플릿 클래스 상속

분류에서Dev

내부 클래스에서 상속

분류에서Dev

내부 클래스에서 상속

분류에서Dev

다형성 상속 클래스 속성

분류에서Dev

클래스를 다른 클래스 내부의 속성으로 선언

분류에서Dev

한 클래스의 속성을 다른 클래스 내부에서 사용

분류에서Dev

추상 클래스 및 다중 상속

분류에서Dev

추상 클래스 다중 상속

분류에서Dev

이미 포함 된 다른 클래스를 상속하는 클래스 상속

분류에서Dev

가상 상속의 클래스 크기

분류에서Dev

가상 상속의 클래스 크기

분류에서Dev

두 개의 추상 클래스 (Qt)에서 다중 상속

분류에서Dev

다른 프로젝트에 상속 된 클래스를 포함 할 때 추상 클래스의 링커 오류

분류에서Dev

가상 상속 및 기본 클래스의 기본 클래스

분류에서Dev

상속 된 클래스 유형의 일반 목록이있는 클래스-다중 상속

분류에서Dev

다른 클래스로 클래스의 속성 수정

분류에서Dev

클래스를 다른 클래스의 속성으로 사용

분류에서Dev

추상 클래스 상속

분류에서Dev

제한된 AppDomain의 C # 클래스는 기본 AppDomain에있는 다른 클래스에서 상속합니다.

분류에서Dev

PHP 클래스 상속 부모 문제

분류에서Dev

다중 상속 및 클래스 개체

분류에서Dev

클래스 상속 다중 선택

Related 관련 기사

  1. 1

    클래스 A 내의 클래스 B는 클래스 A를 상속합니다.

  2. 2

    상속을 위해 다른 클래스의 클래스 보내기

  3. 3

    클래스의 상속. C ++

  4. 4

    클래스의 Java 상속

  5. 5

    다른 클래스의 다른 속성에서 css 속성 상속

  6. 6

    상속의 하위 클래스와 상속에서 다른 클래스 간의 다중성 표시

  7. 7

    다른 추상 및 비추 상 클래스에 의한 추상 클래스 상속

  8. 8

    내부 템플릿 클래스 상속

  9. 9

    내부 클래스에서 상속

  10. 10

    내부 클래스에서 상속

  11. 11

    다형성 상속 클래스 속성

  12. 12

    클래스를 다른 클래스 내부의 속성으로 선언

  13. 13

    한 클래스의 속성을 다른 클래스 내부에서 사용

  14. 14

    추상 클래스 및 다중 상속

  15. 15

    추상 클래스 다중 상속

  16. 16

    이미 포함 된 다른 클래스를 상속하는 클래스 상속

  17. 17

    가상 상속의 클래스 크기

  18. 18

    가상 상속의 클래스 크기

  19. 19

    두 개의 추상 클래스 (Qt)에서 다중 상속

  20. 20

    다른 프로젝트에 상속 된 클래스를 포함 할 때 추상 클래스의 링커 오류

  21. 21

    가상 상속 및 기본 클래스의 기본 클래스

  22. 22

    상속 된 클래스 유형의 일반 목록이있는 클래스-다중 상속

  23. 23

    다른 클래스로 클래스의 속성 수정

  24. 24

    클래스를 다른 클래스의 속성으로 사용

  25. 25

    추상 클래스 상속

  26. 26

    제한된 AppDomain의 C # 클래스는 기본 AppDomain에있는 다른 클래스에서 상속합니다.

  27. 27

    PHP 클래스 상속 부모 문제

  28. 28

    다중 상속 및 클래스 개체

  29. 29

    클래스 상속 다중 선택

뜨겁다태그

보관