- 추상클래스의 필요성
-상속관계에서 하위클래스가 반드시 구현해야 함을 알릴 때(강제성)
-설계와 구현 분리: 상위클래스에서 개념적 특징/하위클래스에서 구체적 행위 구현
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 |