(4) abstract, interface

2020. 7. 7. 16:07개발공부/Java

728x90

1. abstract

 - 추상의 사전적 정의: 일정한 형태를 지니지 않은 객체
 - 프로그래밍 정의: 리턴 타입, 네임, 매개변수를 가진 '껍데기'
  > det. 메서드의 바디부분 {} 이 없음
 - 사용법: 메서드나 변수 앞에 abstract를 붙여주고, 클래스 앞에도 붙여준다!
  > ex. public abstract void orderApple();
 - 사용목적: 부모 클래스가 상속(overriding) 해줄때 자식 클래스에서 abstract 처리된 것은 반드시 선언해줘야 한다.
  > det. 선언해주지 않으면 에러남

2. interface★

- 사용법:
 > 생성파일 이름 첫글자는 'I' 대문자 i 여야 한다.
 > 클래스 대신 interface가 적힌다.
  >> ex. public interface Inter1
 > 실행 클래스엔 interface 받는 클래스 이름을 적어줘야 한다.
  >> ex. public class Example1 implements Inter2 {}
- 특징: 다형성을 사용할 수 있다. 
 > det. 부모 클래스 뿐만 아니라 casting으로 interface들끼리 다형성도 가능하다.
- 사용목적: n인(n > 1) 프로젝트 진행 시 작업을 나눠 합치게 된다. interface를 쓰면 메서드 이름을 통일시켜 비효율을 방지해준다. 
  > det. 상속(overriding) 해주고 한번에 채워넣을수도 있어 1인 작업 시 사용하기도 한다.
  > ex.

IUserService = sv;
//(Login, Join, Update, Delete => action)
if(req.equals("login")){
	sv = new Login();
	sv.action();
} else if(req.equals("join")){
	sv = new Join();
    sv.action();
}