나는 Car라고 불리는 클래스와 Mazdamx5라고 불리는 Car의 확장 클래스를 가지고있다. Car의 속성을 포함하는 Mazdamx5를 확장하는 클래스를 만들 수 있지만 Mazdamx5의 수정되거나 재정의 된 속성이 포함되어 있습니까? 그렇지 않으면 복잡 할뿐입니다. 오, 그래, 중요한 부분을 잊어 버렸어. 어떻게하면 내 새로운 연장과 다른 패키지로 Car and Mazdamx5에서이 모든 작업을 수행 할 수 있습니까? 수입으로?이미 다른 클래스의 확장 인 클래스의 확장을 만들 수 있습니까?
0
A
답변
2
당신을 무시 이와 같은 클래스 계층 구조를 가질 수는 있지만 디자인의 함의를 조금 더 가깝게 고려해야합니다. 이와 같이 깊이 중첩 된 상속을 갖는 것은 많은 경우에 필요하지 않습니다.
각 클래스에 공유 필드가 있도록하려면 선언에 private
대신 protected
을 사용하십시오.
이 완전히 합법적이다 :
public class Car {
}
public class Mazdamx5 extends Car {
}
public class SomeOtherCar extends Mazdamx5 {
}
0
사용해보기. Mazdamx5를 확장하는 또 다른 클래스를 만드는 것은 완벽합니다.
내가 코드 예제이 경우
class Car{
void carDrive() {
S.O.P("car drive");
}
}
class Mazdamx5 extends Car{
void drive() {
S.O.P("drive 2");
}
}
class Car2 extends Mazdamx5 {
void drive() {
S.O.P("Car 2 drive");
}
}
에게 제공, Car2이 Mazdamx5 확장이 클래스, 메소드 Mazdamx5 (구동 방식)의 속성 및 contins 방법 자동차의 특성 (carDrive)
+0
사람이 내가 더 나은 downvotes를 적립하지에 대한 내 대답을 할 수있는 방법을 나에게 설명 할 수 있습니까? – committedandroider
관련 문제
- 1. System.IO.Path 클래스의 확장 메서드를 만들 수 있습니까?
- 2. 다른 클래스의 액티비티 객체를 만들 수 있습니까?
- 3. HQL은 다른 클래스의 집합 인 클래스의 속성을 이해할 수 없습니다.
- 4. 정적 확장을 만들 수 있습니까?
- 5. 외부 클래스의 생성자에서 내부 클래스의 객체를 만들 수 있습니까?
- 6. Perl에서 같은 클래스의 메서드 내에서 클래스의 인스턴스를 만들 수 있습니까?
- 7. 클래스의 객체를 다른 클래스의 멤버 변수로 사용할 수 있습니까?
- 8. Foundation 클래스의 확장
- 9. java.util.HashMap 클래스의 확장 인 클래스 만들기
- 10. 한 클래스의 인스턴스를 다른 클래스의 속성으로 처리 할 수 있습니까?
- 11. 클래스의 인스턴스를 만들 수 없습니다
- 12. 특정 속성이있는 클래스의 확장
- 13. 내부 정적 클래스의 인스턴스를 만들 수 있습니까?
- 14. 배열을 포함하는 클래스의 객체를 만들 수 있습니까?
- 15. 어떻게 가상 클래스의 벡터를 만들 수 있습니까?
- 16. 클래스의 인터페이스 확장
- 17. 클래스를 확장하지 않고 다른 클래스의 함수 하위를 만들 수 있습니까?
- 18. 런타임에 다른 클래스의 클래스를 상속받을 수 있습니까?
- 19. 기본 클래스의 객체를 복합 클래스의 객체로 확장
- 20. 다른 클래스의 데이터 멤버 인 클래스
- 21. 다른 클래스의 private 멤버 인 클래스의 메서드에 액세스하는 방법
- 22. 이미 스테이지에있는 다른 클래스의 객체 제어하기
- 23. java 다른 클래스의 생성자에서 클래스의 인스턴스 만들기
- 24. 프로토콜 전용 클래스 확장을 만들 수 있습니까?
- 25. 일반 클래스의 확장 메서드
- 26. 다른 확장 클래스의 MainActivity에서 var에 액세스
- 27. 다른 플러그인/확장 클래스의 플러그인 기능 재정의
- 28. 기존 클래스의 인덱서 확장
- 29. BufferedImage 클래스의 확장
- 30. 이미 그 클래스의 객체를 가지고 있다면 어떤 클래스의 새 인스턴스를 인스턴스화 할 수 있습니까?
은 캡슐화를 위해 사적인 더 나은 필드를 가지고 있지 않습니까? (심지어 하위 클래스에서도 개인 데이터를 보호합니까?) – committedandroider
@committedandroider 틀림 없음 예. http://stackoverflow.com/a/3182664/995891 - 또한 관심있는 사용자 : http://lassala.net/2010/11/04/a-good-example-of-liskov-substitution-principle/ whatever' Mazdamx5 확장은 여전히 Mazdamx5 여야합니다. 페라리가되기를 원한다면, 당신은 잘못된 것을 확장하고 있습니다. – zapl