abstract class 2

인터페이스와 추상클래스 그리고 Enum

1. 인터페이스(interface)란? 한 클래스가 다양한 클래스를 상속받아 다양한 기능을 사용하면 얼마나 좋을까? 하지만 다중 상속을 자바에서는 지원하지 않는다. 그래서 자바에서는 인터페이스를 이용해 다중 상속을 지원하고 있는데, 인터페이스(interface)는 클래스와 달리 객체를 생성할 수 없는, 클래스에서 구현해야하는 일종의 작업 명세서이다. 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상클래스이다. (인터페이스와 상속은 엄연하게 다름!) 상속이 부모 클래스의 기능을 자식 클래스가 물려 받는 것이라고 한다면, 인터페이스는 하위 클래스에 특정한 메소드가 반드시 존재하도록 강제한다. 일반적으로 인터페이스는 이렇게 구현한다. (추가적으로 인..

Language/Java 2022.05.14

추상 클래스(abstract class)와 인터페이스(interface)

1. 추상 클래스(abstract class) 추상 클래스는 클래스의 공통된 부분을 뽑아 별도의 클래스인 추상 클래스로 만들어놓고 이것을 상속해서 사용한다. 앞서 클래스를 설계도에 비유했는데, 추상 클래스는 미완성 설계도에 비유가 가능하다. 미완성 클래스로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스는 생성할 수 없다. 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스의 특징은 다음과 같다. 1. 멤버 변수를 가진다. 2. 추상클래스를 상속하기 위해선 상속 키워드인 extends를 이용한다 3. 추상 메서드를 가지며 상속한 클래스에서 반드시 구현해야 한다. 4. 일반 메서드를 가질 수 있다. 5. 일반 클래스와 마찬가지로 생성자도 있다. 추상 클래스 자체로는 클래스로서의 역할을 ..

Language/Java 2022.01.23