본문 바로가기
공부/메모

implements와 extends

by 고구밍 2022. 6. 25.

메소드 또는 변수를 구현(implements)하는가 그대로 사용(extends)하는가에 따라서 형태가 갈린다.

 

extends(상속)

  • 상속의 대표적인 형태
  • 부모의 메소드를 그대로 사용
  • 오버라이딩(재정의)할 필요 없이 부모에 구현되있는 것을 직접 사용 가능

JAVA는 다중상속을 지원하지 않는다.

그래서 implements를 사용(상속이라고 말한 순 없지만..)

 

implements (상속)

  • 부모의 메소드를 반드시 오버라이딩(재정의)해야 함
  • 다중상속을 대신해준다.

 

 

BarterRepository, (JpaRepository<Barter, Long>와 BarterQuerydsl 을 상속받고있다.)

public interface BarterRepository extends JpaRepository<Barter, Long> , BarterQuerydsl {

    List<Barter> findAllByBuyerIdOrSellerId(Long userId, Long userId1);

 

Barter 엔티티, Timestamped를 상속받고 있다.

// 성훈 - 거래내역
@Getter
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Barter extends Timestamped {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "barter_id", nullable = false)
    private Long id;

    @Column(nullable = false)
    private Long buyerId;

 


 

implements (상속)

  • 부모의 메소드를 반드시 오버라이딩(재정의)해야 함
  • 다중상속을 대신해준다.

BarterQuerydsl (인터페이스)

public interface BarterQuerydsl {

    List<HotBarterDto> findByHotBarter (int status);

 

BarterRepositoryImpl (임플리먼트로 오버라이딩을 통한 구현)

@Repository
public class BarterRepositoryImpl implements BarterQuerydsl {

    private final JPAQueryFactory queryFactory;

    public BarterRepositoryImpl(JPAQueryFactory queryFactory) {
        this.queryFactory = queryFactory;
    }

    @Override
    public List<HotBarterDto> findByHotBarter(int status) {
        return queryFactory
                .select(new QHotBarterDto(barter1.barter))
                .from(barter1)
                .where(barter1.status.eq(status))
                .limit(1000)
                .orderBy(barter1.sellerId.desc())
                .fetch();
    }

 

 

https://hanke-r.tistory.com/116

 

Java - extends, implements 간단 정리

메소드 또는 변수를 구현(implements)하는가 그대로 사용(extends)하는가에 따라서 형태가 갈린다. extends(상속) 상속의 대표적인 형태 부모의 메소드를 그대로 사용 오버라이딩(재정의)할 필요 없이

hanke-r.tistory.com

 

'공부 > 메모' 카테고리의 다른 글

oEmbed 공부하기  (0) 2022.06.25
기술 부채란?  (0) 2022.06.23
제이유닛 테스트 공부하기 - 1  (0) 2022.05.17
웹소켓 공부 - 1  (0) 2022.04.29
예외처리관련 링크 - 2  (0) 2022.04.28