JAVA

[JAVA]15. 추상화&인터페이스

CodeJaram 2023. 6. 16. 08:41
  1. 추상클래스의 필요성

-상속관계에서 하위클래스가 반드시 구현해야 함을 알릴  때(강제성)

-설계와 구현 분리: 상위클래스에서 개념적 특징/하위클래스에서 구체적 행위 구현

 

2. 추상클래스 규칙

  • 추상클래스->하위클래스에서 추상메소드를 오버라이딩해야 함
  • 부모클래스에 생성자가 있으면 자손클래스에서도 생성자를 만들어야 한다.
  • super(): 조상클래스의 생성자를 호출하는 데 사용된다. ->생성자의 첫 줄에 입력해야 함

 

[실습]

1)직원 클래스(추상클래스) 만들기

-속성: 사번, 이름, 급여

-추상메소드: getMoneyPay()

-생성자(속성들의 값을 담을 메소드) 만들기

-변수에 접근할 getter, setter 메소드 만들기

 

2)직급별로 VO클래스 만들기(추가속성, 메소드)

-직원 클래스 상속받기(생성자, 추상메소드 만들기)

-정규직: 보너스 속성 추가->생성자에 변수 추가, 메소드에 급여계산 return 하기

-계약직: 계약월 속성 추가->생성자에 변수 추가, 메소드에 급여계산 return 하기

-아르바이트: 일한 날수 속성 추가->생성자에 변수 추가, 메소드에 급여계산 return 하기

 

3)main 클래스에 사원정보 출력하기

 

-계약직, 정규직, 아르바이트 객체 생성하고 변수에 값 입력하기->같은 클래스 객체여도 값 추가할 때마다 객체 생성해야 값을 입력할 수 있음

-print문으로 사원정보 출력하기(사번, 이름, 급여)->getter 메소드 활용

 

3. 인터페이스

  • 인터페이스 키워드 implement
  • 변수는 선언할 수 없다.
  • 상수만 선언할 수 있다(상수키워드- final). 

-public, static, final은 생략가능

  • 메소드는 추상메소드(만) 가능하다.

-public, abstract는 생략 가능

-접근제한자가 생략된 메소드는 public 메소드임 참)클래스-default

-JDK 1.7 이상 버전에 default 메소드 가능

-JDK 1.9이상 버전에서 static 메소드 가능

  • 객체 생성할 수 없다. 

 

클래스와 달리 다중구현(상속)이 가능하다(상속 키워드: extends).

-추상메소드가 포함되면 하위클래스에서 추상메소드를 오버라이딩해야 한다.

-default 메소드는 추상메소드가 아니므로 오버라이딩 할 필요 없다.

 

4. 익명클래스

  • 일회성으로 사용하는 클래스. 클래스의 선언과 객체의 생성을 동시에 함 
  • 한번만 생성할 수 있고, 하나의 객체를 생성하기 위해 사용되는 클래스
  • 컴포넌트 생성 시 활용함. 버튼을 누를 때만 실행됨 예)버튼, 체크박스

 

 

 

'JAVA' 카테고리의 다른 글

[JAVA]16. JDBC  (0) 2023.06.19
[JAVA]14.디자인 패턴  (0) 2023.06.15
[JAVA]13.상속  (0) 2023.06.12
[JAVA]12. 생성자  (0) 2023.06.11
[JAVA]11. 객체지향 프로그래밍  (0) 2023.06.10