데브코스 5일차 TIL

Heesu Song·2025년 3월 18일

데브코스 - 백엔드

목록 보기
3/32
post-thumbnail

그동안 스프링으로 프로젝트를 할 땐 자바 자체를 깊게 볼 일이 없어서
자바가 이렇게 어려운 언어인줄 몰랐다..

JAVA

추상 클래스

추상 클래스는 직접적으로 인스턴스화 될 수 없음 → 형태가 완벽하지 않은 클래스

Abstract Class

  • 추상 메서드를 하나 이상 포함 가능
    • 구현 되지 않은 메서드 (메서드 body가 없음)
    • 선언, 정의만 포함
    • 자식 클래스에서는 반드시 구현 되어야 함
  • 구현 메서드도 보유 가능
  • 직접 인스턴스 생성 불가능
    • new 로 직접적으로 생성하는게 불가능
    • 무조건 상속을 받거나 해야가능

일반 메서드

public void name(매개변수) {
	명령줄;
}

추상 메서드(미구현)

public abstract void getName();

→ body가 구현돼 있지 않음

→ 행동이 설정돼 있지 않기 때문에 직접 생성자 호출이 불가능

→ Override로 상속받아서 자식 클래스에서 구현

인터페이스

클래스들이 필수로 구현해야 되는 추상 자료형(클래스를 위한 클래스)

→ 객체의 사용 방법 가이드라인

  • 추상 클래스보다 추상도가 높음
  • 특정 조건을 부합하지 않으면 일반 메서드는 가질 수 없음
  • 추상 메서드와 상수만 가지고 있음
  • 직접 생성자 호출이 불가능

Interface

  • 추상 메서드만 가능 → public과 abstract만 올 수 있음
  • 기본적으로 붙어있기 때문에 public과 abstract는 생략 가능
  • 인터페이스는 여러개의 인터페이스를 구현받아서 사용 가능
  • 다중 구현(상속)이 가능
public class name implements basename(){
	// 명령문
}

default

  • default를 붙이면 body를 생성할 수 있음

final

  • final이 붙으면 더 이상 수정 불가능 → 상속도 불가능
  • 상속 받았을 때 상위 클래스에서 메서드에 final이 붙어있으면 상속 불가능
→ 매서드의 매개변수에 final이 붙어 있는것은 상관 없음
  • final 변수 생성시 생성자에서 this를 통해 값을 할당해 주면 선언만 가능 →@RequiredArgsConstructure 어노테이션이 이 기능을 대신 수행해줌

다형성

Inner Class

  • 이너 클래스는 아우터 클래스의 멤버 인스턴스로 구분됨
// 외부에서 이너클래스에 접근하고 싶을 때
OuterClass.InnerClass innner = new OuterClass.InnerClass();
profile
Abong_log

0개의 댓글