이론적 질문 : 수퍼 클래스에서 서브 클래스 B를 만들 수 있습니까? 특정 인스턴스 변수/메소드를 제외한 모든 A 인스턴스 변수/메소드를 상속받습니다. 수퍼 클래스 A?Java : 모든 수퍼 클래스 인스턴스 변수/메소드가없는 하위 클래스 상속
답변
상황에 A가 너무 많아 기본 클래스가 좋지 않다는 것을 알 수 있습니다.
상속에 일반적으로 유용 할 것으로 예상되는 A 구현 부분을 포함하는 C 클래스를 만듭니다. A와 B 모두를 C로 확장하여 요구 사항에 맞게 작성하십시오. C는 추상적 일 수 있습니다. B가 상속 경우
이것은 가장 정확한 대답입니다. 가난한 솔루션에 구두를 신기 려하지 말고 디자인을 수정하십시오. 1 + –
+1. 또는 코드 재사용을 위해 하위 클래스에 너무 많이 의존하지 말고 대신 작성 및 위임을 사용하십시오. – Thilo
상속하지 않으려면 비공개로 설정하십시오.
글쎄, 당신은 그것을 사적인 것으로 만들지도, 그것은 여전히 "계승"되어 있습니다. 그것은 단지 아이가 그것에 접근 할 수 없다는 것입니다. 그러나 그것은 여전히 자녀의 "일부"입니다. –
그냥 지우려면 B는 A의 인스턴스 변수를 포함하지 않고 A의 메소드를 상속합니다.
B가 A의 특정 메소드 나 변수를 상속하지 않기를 바란다면 최종 키워드를 선언 할 수 있습니다.
''B가 A의 특정 메소드 나 변수를 상속받지 않기를 바란다면 최종 키워드를 선언 할 수 있습니다. "- final은 메소드가 오버라이드되는 것을 막기 때문에 잘못되었습니다. 상속 된. [참고] (http://docs.oracle.com/javase/tutorial/java/IandI/final.html)를 참조하십시오. –
호, 그것이 A. 이르기 상속 (비록 수 오버라이드 A. 의해 제공된 메소드 구현)
가 그러나 A B 내부는 A 래핑 수 상속보다 컴포지션을 사용합니다. B에서 노출하려는 특정 인스턴스 메소드 만 노출합니다.
- 1. 자바 수퍼 클래스 상속
- 2. 하위 클래스 인스턴스에 대한 Java 얕은 복사 슈퍼 클래스 인스턴스
- 3. 수퍼 클래스 개체의 하위 클래스 인스턴스 변수는 무엇입니까?
- 4. 자바 - 수퍼 클래스 (상속)와 부모 클래스 (상속 없음)
- 5. 하위 클래스 생성자가 수퍼 클래스 생성자의 모든 인수를 필요로합니까?
- 6. 리플렉션을 사용하여 Java 클래스 수퍼 클래스 변경
- 7. 수퍼 클래스 및 하위 클래스 오류
- 8. 수퍼 클래스의 서브 클래스 인스턴스
- 9. 수퍼 클래스 개체에서 하위 클래스의 인스턴스 메서드에 액세스
- 10. 수퍼 클래스 목록에 하위 클래스 개체 추가
- 11. Django 모델 상속 : 하위 클래스 삭제 하위 클래스 유지
- 12. 인스턴스의 Java 인스턴스 수퍼 인스턴스
- 13. 수퍼 클래스 하위 클래스 데이터의 개체 설정
- 14. Java의 하위 클래스 생성자에서 수퍼 클래스 호출
- 15. Java 상속, 익명 내부 클래스 인스턴스 멤버, 안드로이드 콜백 메소드
- 16. 하위 클래스 - 인수 수퍼 클래스에서
- 17. Eclipse의 Java 클래스 상속
- 18. Java 하위 클래스 생성자 상속 된 멤버
- 19. greendao 설정 수퍼 클래스
- 20. 수퍼 클래스 인스턴스 var에 어떻게 액세스합니까?
- 21. 수퍼 클래스에서 하위 클래스 만들기?
- 22. 하위 클래스 컨텍스트에서 수퍼 클래스에서 상속 된 메서드를 실행하는 방법?
- 23. 수퍼 클래스 속성이없는 클래스 속성
- 24. OWL 클래스 및 하위 클래스 속성 상속
- 25. 하위 클래스 및 캐스트가있는 상속 클래스
- 26. 상속 클래스 디자인 (Java)
- 27. Java Frame 클래스 상속
- 28. Java 클래스 및 하위 클래스
- 29. 하위 클래스는 연결된 수퍼 클래스 클래스를 상속합니까?
- 30. 하위 클래스의 인스턴스 메서드에서 수퍼 클래스 개체를 반환하는 방법?
음 ... 아니요. 전혀 그렇지 않다. –
필요가 있다면 상속을 잘못 사용하는 것입니다. [Liskov Substitution Principle] (http://en.wikipedia.org/wiki/Liskov_substitution_principle)을 깨뜨릴 것입니다. –
끝으로? 싫어하는 것을 무시할 수 있습니다. – Thilo