-
추상 클래스와 인터페이스프로그래밍 언어/JAVA 2020. 3. 29. 18:10
추상 클래스
추상 메서드는 선언만 있고 구현이 없는 메서드
public abstract class Event{
public String title;
public Evnet(String title){
this.title = title;
}
public abstract boolean isRelevant(MyDate date);
}
추상 메서드를 하나라도 가지고 있으면 → 추상 클래스
객체를 만들기 위해 클래스 정의, 그러나 아무 내용이 없는 메서드를 가지고 있다 → 추상 클래스는 객체를 만들 수 없다
그럼 왜 추상 클래스가 필요한가?
클래스는 객체를 만들기 위해서만 존재하지 않는다
어느 한 클래스의 서브 클래스를 만드는 용도 또한 중요
부모 클래스의 함수를 적절히 구현하기 곤한할 때
추상 클래스 사용예
super class 타입의 배열 생성
자식 class를 부모 타입의 클래스로 다이나믹 바인딩 함
해당 자식들은 공통의 유사 기능의 메소드를 구현
for 문을 통해 배열의 메소드 실행... compile 오류 발생!!! (부모 메서드는 작성되지 않았기 때문!!)
인터페이스
추상 클래스와 유사... 추상 클래스의 극단적인 형태/ 오직 abstract method로만 이루어져 있음
인터페이스 안에는 어차피 추상 메서드만 있을 수 있으므로 abstract를 굳이 붙이지 않는다
조금 더 generic 하게 만들 수 있다!!
추상 메서드로만 구성된 추상 클래스는 인터페이스와 완전히 동일한가?
중요한 차이점 - 다중 상속
인터페이스는 아무 내용이 없는 것들이랑 다중 상속이 가능
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JVM3 (0) 2020.05.02 JVM2 (0) 2020.04.26 JVM (0) 2020.04.26 NIO - Buffer (0) 2020.04.03 객체, 클래스의 개념 (0) 2020.03.29