반응형
추상클래스
- 추상메소드를 0개 이상 포함하는 클래스 추상메소드 없어도 됨
- 필드 가능. 생성자가능-> 객체화가능. 일반 메소드 가능. 미완성 메소드(추상메소드)가능
- 추상클래스로는 인스턴스 생성 불가능 (x) Product pro = new Product() ;
- 다형성을 활용하여 상속받은 하위 클래스에 인스턴스 생성 후 추상클래스 사용
- 추상클래스의 추상메소드는 오버라이딩 강제성 부여
- 추상메소드
메소드의 선언부만 있고 구현부가 없는 메소드
반드시 abstract 키워드를 메소드 헤드에 작성 해야 함.
public abstract void method();
인터페이스
반응형
- 추상 메소드와 상수 필드만 가질 수 있는 클래스의 변형체
- 필요한 기능을 공통화 해서 강제성을 부여할 목적(표준화)
- 인터페이스는 다중상속이 가능함.
- 인스턴스 생성 x, 생성자x
- 레퍼런스 타입으로만 사용 가능
- static 메소드는 작성이 가능함(JDK 1.8 추가된 기능)
- static 메소드는 오버라이딩 불가능
- static호출 : 인터페이스명.메소드명();
- 상수 필드 접근은 인터페이스명. 필드명으로 접근
- default 키워드를 사용하면 non-static 메소드 작성 가능
- default 키워드는 interface내에서만 작성 가능, 해당 메소드 사용할 시에는 default 제거 후 오바라이딩
- 인터페이스가 인터페이스를 상속 받을 때 : extends (다중 상속 가능)
- 클래스에서 인터페이스를 상속 받을 때 : implements(다중 상속 가능), extends로 다른 클래스를 상속 받고 있는 경우 추가로 인터페이스 상속이 가능함(extends 키워드를 앞에 작성하고 implements 키워드를 작성)
- 인터페이스 상속받은 클래스는 인터페이스에서 작성한 추상 메소드를 전부 오버라이딩 해야 함.
- public abstract는 묵시적 사용 가능 함. 단, 인터페이스의 메소드 오버라이딩 시 접근제한자는 반드시 public으로 해야함.
구분 | 추상 클래스 | 인터페이스 |
상속 | 단일 상속 | 다중 상속 |
구현 | extends | implements |
메소드 | 일반메소드, 추상메소드 둘다 사용가능 | 추상메소드만 |
abstract | 명시적 사용 | 묵시적 사용 |
객체 | 객체 생성 불가 | 객체 생성 불가 |
용도 | 참조 타입 | 참조 타입 |
반응형
'프로그래밍 > java' 카테고리의 다른 글
[자바/Java] hashCode() , equals() (0) | 2022.08.29 |
---|---|
[자바 Java] API (0) | 2022.08.29 |
[자바JAVA] 다형성(동적바인딩, 클래스형변환) (0) | 2022.07.14 |
[자바JAVA] 상속(super,오버라이딩@Override) (0) | 2022.07.12 |
[자바JAVA] 객채 배열(초기화, 저장구조) (0) | 2022.07.11 |