TIL 05. Class Node Type (클래스 종류)

crystal·2021년 6월 1일
0

Java

목록 보기
5/6
post-thumbnail

🐳 Class Node Type (클래스 종류)

오늘 배운 거 위주로 정리를 해놓으려고 합니다. 꾸준히 계속 정리를 해 나가는 것으로🤗🤗

1) Concrete Class

개발자가 자유롭게 필요시에 직접 객체 생성가능한 클래스이며, 다형성을 반영한 부모타입의 변수를 사용하는 것이 가능하다.

  • 구성 요소 : 멤버변수, 생성자, 메서드
  • 부모클래스
    - 부모 선언 형식 :
    public class 부모 클래스명 {}

  • 자식클래스 (상속) : 선택
    - 자식클래스 선언 형식 :
    public class 자식클래스명 extends 부모클래스명 {}

2) Abstract Class

추상 클래스는 미완성의 클래스(추상 클래스)이며 미완성 메서드(추상메서드)를 갖는다. 직접 객체를 생성하는 것이 불가능하다. 🌈 추상메서드가 존재시에는 반드시 추상클래스를 쓰고, 추상메서드가 없어도 상속을 강제하기 위해서 추상클래스를 쓴다. 🌈

  • 구성 요소 : 멤버변수, 생성자, 메서드 + [추상메서드]
  • 부모 추상 클래스
    - 부모 선언 형식 :
    public abstract class 부모 추상클래스명 { public abstract 반환타입 추상메서드명(args); }
  • 자식클래스 (상속) : 필수
    - 자식클래스 선언형식 :
    public class 자식클래스명 extends 부모추상클래스명 {}

3) Interface

인터페이스는 ⭐ 다중 구현 (표준화, 일반화) ⭐ 이 가능하다는 특징을 가지고 있다.

  • 구성요소 : "추상메서드", "상수"로만 구성된 클래스 형태
    • 추상메서드 : 인터페이스에 선언되어 있는 메서드는 자동으로 public abstract 표기함
    • 상수 : 인터페이스에 선언되어 있는 멤버변수는 자동으로 public static final 표기함
  • 부모 인터페이스
    - 선언 형식 :
    public interface 부모인터페이스명 {
    		   public 타입 상수명 = 상수값;
    		   public 반환타입 추상메서드명(args);
    						  }
  • 자식 클래스 (상속) : 필필수
    - 자식 클래스(구현)
    public class 자식클래스명 implements 부모인터페이스명1, 부모인터페이스명2 {}
  • 자식 인터페이스(상속)
    public interface 자식인터페이스명 extends 부모인터페이스명 {}
    => 인터페이스들 끼리도 상속관계가 가능하다. => extends를 쓴다.

Q. 어떨 때 사용해야 하나?

어떤 것을 사용해야할지 감이 안 올 때 보통 이렇게 많이 쓰는 것 같다.

  1. 인터페이스 : 공통적인 것을 제공해야 할 때
  2. 추상클래스 : 일부분만 구현해서 제공하고 자식에게 일부분을 일반화를 강제할 때
profile
어제보다 더 나은 오늘의 내가 되자 ✧ʕ̢̣̣̣̣̩̩̩̩·͡˔·ོɁ̡̣̣̣̣̩̩̩̩✧ 

0개의 댓글