☕JAVA/🐣 강의 [JAVA]

[JAVA][기초] 추상 클래스 abstract class 와 인터페이스 interface

디카페인라떼 2022. 10. 12. 15:22

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.

Java for Beginner - YouTube

 

Java for Beginner

[교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프...

www.youtube.com


추상 클래스 abstract class 

  • 추상 클래스는 하나 이상의 추상 메소드 abstract method 를 갖는 클래스
  • 상속 관계에서 부모 클래스의 역할을 갖기 위한 클래스이며 추상 메소드와 일반 메소드를 가질 수 있음.
  • 추상 메소드는 메소드의 몸체가 없는 메소드이며 자식 클래스에서 재정의하도록 (강제) 하기 위한 메소드
  •  추상 클래스는 new 동적 할당자를 통해 인스턴스 객체를 만들 수 없음. 

 


 

인터페이스 Interface
  • 인터페이스는 일반적으로 추상 메소드만 가지며 interface 키워드를 이용해 정의
  • 특정 클래스가 인터페이스를 구현하기 위해서는 implements 키워드를 통해 구현
  •  상속과 달리 (단일 상속만 가능) 인터페이스는 하나의 클래스가 둘 이상의 인터페이스를 동시에 구현 가능
  • 인터페이스를 통해 설계와 구현을 완전히 분리 가능

  • 인터페이스에는 필드, 추상메소드, static 메소드, default 메소드를 정의할 수 있음.
  • 인터페이스에 정의하는 모든 필드는 public static final (사용자 정의 상수)이 자동으로 적용
  •  Java 8부터 인터페이스에 static 메소드를 추가할 수 있으며 static 메소드의 상용은 일반 클래스와 동일
  •  Java 8부터 default 메소드가 추가되었으며 이 메소드는 그 자체로 완전한 메소드이며 구현 클래스는 선택적으로 재정의 가능

 

인터페이스의 활용 - 다형성 
  • 자바의 상속 구조는 단일 상속의 원칙을 갖기 때문에 하나의 클래스가 여러 부모 클래스를 상속할 수 없음.
  • 서로 다른 부모 클래스를 갖는 클래스 간에도 같은 인터페이스를 구현 가능
  • 같은 인터페이스를 구현하고 있는 클래스 간에는 그 인터페이스로 하여금 대표성을 갖게 할 수 있음.
  • 인터페이스와 구현체와도 up-casting/down-casting 가능
  • 서로 다른 내용의 클래스라도 같은 인터페이스를 구현하고 있다면 해당 인터페이스를 가지고 대표성을 갖게해서 다형성을 구현하게 할수 있음. 
인터페이스의 역할
  • 하나의 프로그램의 다수의 클래스들이 서로 관계를 형성하게 되고 각 클래스들은 역할에 따라 구분
  • 클래스들 간에 관계를 밀접하게 구성하게 되면 특정 클래스에서 변경이 일어날 경우 많은 클래스들이 영향을 받음.
  • 따라서, 클래스 간에 관계를 구성할 때 그 관계를 느슨하게 관리하는 것이 중요
  •  클래스와 클래스 사이에 인터페이스를 구성하면 직접적인 접근이 없는 느슨한 관계 구성 가능

 


2022.09.14 - [SPRING] - [SPRING] Service 와 ServiceImpl

 

[SPRING] Service 와 ServiceImpl

 처음 Spring을 배울때부터 채멘에게 배웠던 방식은 Service Interface를 두고 Service 구현체를 따로 두는 방식이었다. 그래서 팀과제를 할때에도 혼자서 꿋꿋이(?) 이 방식을 고수해오고 있었는데 최근

wearegolden.tistory.com