학원/강의

*18일차 (추상클래스 / 인터페이스)

pringspring 2022. 2. 16. 14:46

@추상 클래스(abstract class)

  *정의

   -몸체 없는 메소드를 포함한 클래스 

   -추상 클래실 경우 클래스 선언부에 abstract 키워드 사용

 

  *표현식

   -[접근제한자] abstract class 클래스명 { }

 

 

@추상 메소드

  *정의 

   -몸체({ })없는 메소드를 추상메소드라고 함

   -추상 메소드 선언부에 abstract 사용

   -상속 시 반드시 "구현" (강제 오버라이딩)

 

  *표현식

   -[접근제한자] abstract [리턴타입] 메소드명 { };

 

  *특징

  1. 미완성 클래스(abstract 키워드 사용) 자체적으로 객체 생성 불가 → 반드시 상속해 객체생성
  2. abstract 메소드가 포함된 클래스 → abstract메소드 없어도 abstract 클래스 선언 가능
  3. 일반적인 메소드,변수 포함할 수 있다.
  4. 객체 생성은 안되나, 참조형 변수 type으로 사용 가능.

 

@인터페이스

 

  *정의

    -상수형 필드와 추상 메소드만 작성할 수 있는 추상 클래스의 변형체.

    -메소드의 통일성을 부여하기 위해 추상메소드만 따로 모아 놓은 것.

    -상속시 인터페이스 내에 정의된 모든 추상 메소드를 구현해야한다.

 

   *표현식

 

   *특징

    -모든 인터페이스의 메소드는 묵시적으로 public이고 abstract이다.

    -변수는 묵시적으로 public static final

    -객체생성 X , 참조형 변수 ok

 

   *장점

    -상위 타입의 역할로 다형성을 지원하여 연결해주는 역할 수행

    -해당 객체가 다양한 기능을 제공시에도 인터페이스에 해당하는 기능만을 사용하게 제한할 수 있다

    -공통 기능상의 일관성 제공 / 공동 작업을 위한 인터페이스 제공

 

 

+)추가

 

+)API 끝난 후 작성예정