Abstract class 추상클래스
- 추상클래스는 객체를 생성할 수 없다.
- 직접 new 연산자를 사용할 수 없다.
- 추상 클래스 : 일반메소드 + 추상메소드
- 불완전한 클래스
- 추상메소드가 1개라도 있어야 추상화 시킴
- 추상메소드
- 메소드의 body{}가 없음
- 메소드의 머릿말만 존재.
- 하는 기능이 없음
- 형식 : 리턴형 함수명(); > 불완전한 함수
- 인터페이스
- 추상메소드만 선언 가능하다.
- 활용도가 더 높음.
추상클래스
- 추상클래스는 누군가의 부모 역할만 한다. (extends)
- 추상클래스를 상속받은 자식클래스는 반드시 추상메소드를 완성해야 한다.(override)
1 |
|
- 추상클래스는 부모역할만 하고 자식이 가져다 변형해서 사용한다.
- 추상클래스는 확장시킬 때 사용
1 |
|
- 추상클래스는 new연산자로 객체생성을 할 수 없다.
1 |
|
- 추상클래스의 다형성
1 |
|
추상클래스의 다형성
- 다형성으로만 해야한다.
- 추상클래스는 자신의 클래스 이름으로 객체생성 불가.
1 |
|
- 추상클래스는 자신의 클래스로 객체 생성 불가
1 |
|
인터페이스 Interface
- 추상메소드만 구성되어 있다.
- 일반메소드와 섞여 있으면 추상클래스.
- 추상클래스보다 더 추상화
클래스 입장에서 부모가 클래스일 경우
extends 확장
부모가 인터페이스일 경우
implements 구현
1 |
|
- 인터페이스 자신으로 직접 객체 생성 불가.
1 |
|
- 인터페이스에서의 다형성
- 다형성은 인터페이스에서 더 잘된다. (추상클래스보다.)
1 |
|
- 인터페이스를 활용해서 개발 프로젝트에서 발생하는 여러 페이지들을 표준화, 구조화 할 수 있다.
1 |
|
- 다형성
1 |
|
클래스와 인터페이스간의 상속 및 구현
- 인터페이스는 다중상속이 가능.
- 클래스간에는 단일상속만 가능
1 |
|
- 인터페이스가 인터페이스를 상속받을때는 extends (클래스가 클래스 상속받을 때도.)
- 클래스가 인터페이스를 상속받을때는 implement
1 |
|
익명 내부 클래스 Anonymous class
- 클래스 이름이 아니라 이름없는 것들을 통칭.
1 |
|
1. 구현클래스
1 |
|
2. 다형성
1 |
|
3. 익명클래스
- 필요한 곳에서 일시적으로 실행
- 이벤트가 발생할 때만 실행
- 안드로이드 자바, JavaScript,jQuery 에서 많이 활용
1 |
|
내부 클래스 inner class
- 클래스 내부에서 선언된 클래스
1 |
|
- 내부 클래스는 외부에서 단계적으로 접근할 수 있다.
1 |
|