작성
·
401
답변 3
1
안녕하세요. 전지윤님, 공식 서포터즈 OMG입니다.
추상클래스에 관한 질문이네요.
추상클래스는 자바의 기본 내용 중 하나로 강의에서는 자바 기초는 선수지식으로 정의하고 진행됩니다.
제가 abstract 를 붙히는 이유에 대해 설명을 드릴수 있지만 그러면 "기억에 오래 남을까?"라는 의문이 드네요.
잘 정리된 포스팅 첨부하오니 강의코드와 함께 학습 하시길 바라며 아래 내용으로도 부족하면 추가적인 자료를 찾아 학습하신 후에도 이해가 안된다면 참고하신 자료와 함께 질문 글 남겨주세요.
[JAVA] 자바 추상클래스란? (tistory.com)
감사합니다.
Movie Album Book의 공통된 필드를 Item이란 추상클래스에 정의하고 이를 상속받게 했다 이런식으로 이해하면 될런지요..ㅠ
=>
네 맞습니다. 하지만 이 부분은 일반클래스의 상속의 특징에 해당하는 내용이기도 하죠.
추가적으로 영한님께서는 강의 중에 BaseEntity와 같이 직접 만들어서 사용할 일 없는 경우에는 만일에 발생할 실수를 방지하기 위해 추상클래스로 만들어 사용하길 권장하셨습니다.
그리고 추상클래스가 아닌 일반클래스를 상속받게 해도 똑같이 동작할까요?ㅠㅠ..
=>
상속관계 매핑 전략을
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
로 하신후
abstract를 선언한것과 안한 것의 쿼리 실행 결과를
비교하시면 차이점이 보이실꺼에요.
한번 직접 시도해보시겠어요?
시도 하신 후 알게 된 사실을 알려주세요.
차이점이 없다고 생각하시면 그렇다고 답변해주셔도 좋습니다.
답변 해주시면 저도 답변 드릴게요.
1. new로 객체 생성이 안되는 것은 추상클래스의 특성입니다.
2. 궁금해 하시는 abstract가 붙은 것과 안 붙은 것의 차이는 영한님이
https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21705?tab=curriculum
27분에 상황을 보여주고 계십니다.
확인해보시겠어요?
안녕하세요 OMG선생님 늦게확인해서 죄송합니다 ㅠㅠ,,, Item 테이블만 조회 할 일이 없으니 abstract 엔티티로 만들고 이를 상속받게 했다,,,, 이렇게 이해가 되는거 같습니다 자세한 답변 항상 감사합니다!!,,
0
0
안녕하세요 abstract가 붙은 item클래스 관련해서 궁금한점이 생겨서 여기에 질문을 남겨봅니다.
1. abstract가 붙은 클래스와 mappedsuperclass 어노테이션이 붙은 클래스 둘 사이의 구체적인 차이를 알수있을까요?
abstract가 붙은 item클래스를 상속할때는 db에 item 테이블은 생성이 되지만(@Entitiy가 있다는 가정, join전략사용 가정) 해당 테이블에는 item타입의 객체가 들어가지 못하는 대신 item의 자식클래스로부터 생성된 객체가 들어가는것으로 이해했고
mappedsuperclass가 붙은 클래스는 db에 테이블이 생성되지 않고 속성만 공유해준다고 이해했는데 혹시 틀린부분이 있을까요?
답변 감사합니다!!... Movie Album Book의 공통된 필드를 Item이란 추상클래스에 정의하고 이를 상속받게 했다 이런식으로 이해하면 될런지요..ㅠ 그리고 추상클래스가 아닌 일반클래스를 상속받게 해도 똑같이 동작할까요?ㅠㅠ.. 답변해주셔서 감사합니다