상속

· Java
디폴트 메서드(default method)란? 보통 인터페이스는 규칙을 잡거나, 서비스의 플로우 로직을 잡는 데 사용하곤 한다. 하지만 인터페이스를 구현하는 클래스에서는 메서드를 모두 구현해야하기 때문에 인터페이스에 메서드를 추가할때 문제가 발생한다. 메서드 하나를 추가하려면 해당 인터페이스를 구현하는 모든 클래스에서는 해당 메서드를 모두 구현해줘야 하는 것이다. Java8에서는 이러한 문제를 해결하기 위해 2가지 방법을 제공한다. 인터페이스 내부에 정적 메서드(static method)를 사용한다. 인터페이스의 기본 구현을 제공할 수 있도록 디폴트 메서드(default method) 기능을 사용한다. 인터페이스에 디폴트 메서드를 사용하여 메서드를 구현할 수 있다. 디폴트 메서드를 이용하면 인터페이스의 ..
· JPA
@MappedSuperclass를 사용하면 부모 클래스는 테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보만 제공한다. 비유를 하자만 추상 클래스와 비슷한데 @Entity는 실제 테이블과 매핑되지만 @MappedSuperclass는 실제 테이블과 매핑되지 않는다. 단순히 매핑 정보를 상속할 목적으로만 사용된다. 이 클래스를 직접 생성해서 사용할 일은 거의 없으므로 추상 클래스로 만드는 것을 권장한다. @MappedSuperclass public abstract class BaseEntity { @Id @GeneratedValue @Column(name = "ID") private long id; @Column(name = "NAME") private String name; } @E..
· JPA
관계형 데이터베이스에는 객체지향 언어에서 다루는 상속이라는 개념이 없다. 대신 슈퍼타입 서브타입 관계(Super-Type Sub-Type Relationship)라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. ORM에서 이야기하는 상속 관계 매핑은 객체 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 조인 전략(각각의 테이블로 변환) 각각을 모두 테이블로 만들고 조회할때 조인을 사용한다. JPA에서는 조인 전략이라 한다. 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략이다. 구분 컬럼으로 타입을 구분한다. @Entity @Inheritance(strategy = InheritanceType.JOINED) // 조인 전략 사용 @Discrim..
· Java
상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 코드를 공통적으로 사용하는 클래스를 상속받게 되면 적은 양의 코드로 클래스를 작성할 수 있고 , 코드를 공통적으로 관리할 수 있어 코드의 재사용성과 중복을 제거 할 수 있다. 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 extends 와 함께 써주기만 하면 된다. 상속해주는 클래스를 조상 클래스(부모 클래스, 상위 클래스, 기반 클래스)라고 하며, 상속받는 클래스는 자손 클래스(자식 클래스, 하위 클래스, 파생된 클래스)라고 한다. class Child extends Parent { ... } 조상 클래스와 자손 클래스의 관계 상속받은 자손 클래스는 상속해준 조상 클래스를 포함하고 있다..
beekei
'상속' 태그의 글 목록