이 포스팅에는 아래의 내용이 포함되어있습니다. 1. 추상클래스 2. 추상 메서드 3. 예제 1. 추상클래스란?(abstract class) - 추상메서드를 1개 이상 가지고 있는 클래스 - 추상메서드는 선언부만 있고 구현부는 없는 클래스 - 완성된 설계도가 아니기 때문에 인스턴스를 생성할 수 없다. - 인스턴스를 생성하기 위해서는 추상메서드를 구현해야한다. - 다른 클래스를 작성하는데 도움을 줄 목적으로 작성된다. 2. 추상 메서드 - 선언부만 있고 구현부는 없는 클래스 - 꼭 필요하지만 자손마다 다르게 구현 될 것으로 예상되는 경우 사용 - 추상 클래스의 일부 메서드만 구현할 때 그 클래스 앞에 abstract를 붙여야한다. 예제를 통해 살펴보겠습니다.
ContentSender은 추상 클래스 입니다. abstract가 붙었고 추상 메서드인 sendMsg가 포함되어있습니다.
클래스 KakaoSender에서 추상 클래스인 ContentSender을 상속받았습니다. 그러면 추상메서드를 구현해야합니다. 오버라이딩하여 구현을 해주었습니다.
letterSender클래스도 마찬가지입니다.
실행클래스입니다. 필드의 다형성으로 ContentSender을 자손의 클래스들로 생성을 하고 있습니다. 그리고 구현해준 추상 메서드를 호출합니다. <출력결과> 두번째 예제입니다.
추상 클래스 Unit을 만들어주었고 추상 메서드 move를 만들었습니다.
Unit을 상속받은 클래스 3개를 만들어주었고 move메서드는 각각 다르게 오버라이딩 해주었습니다.
맨 위에 주석 처리 한 코드 예외 발생 이유는 무엇일까요? Unit은 추상클래스이기 때문에 인스턴스를 생성할 수 없어서 예외가 발생합니다. <실행결과> Unit의 move메서드를 각각 오버라이딩했더니 객체마다 오버라이딩한 move메서드가 나타남을 확인할 수 있습니다. |