추상클래스

    추상클래스(Abstract Class) VS 인터페이스(Interface)

    지금까지 추상클래스와 인터페이스를 살펴보았다. 추상클래스와 인터페이스는 각각 고유한 몇몇 특징을 가지고 있지만, "추상 메서드를 통해 상속/구현을 통한 메서드 강제 구현 규칙을 가지는 추상화 클래스"라는 점에서 매우 비슷하다는 느낌을 받을 것이다. 또한, '그렇다면 모든 메서드를 추상 메서드로 만들어서 사용하면 추상 클래스가 인터페이스 역할 할 수 있는데 왜 굳이 인터페이스가 존재하는 걸까? '라는 의문도 생길 수 있다. 기능적인 측면을 다 제외하고, 두 개를 나누어서 사용하는 가장 큰 이유는 사용 목적과 사용 시기가 다르다는 것이다. 그러므로 '추상 클래스와 인터페이스의 사용 목적과 사용 시기의 차이'를 알아보고, '기능적인 차이점'에 대해서도 추가적으로 정리해 보도록 하자. 📙 1. 사용 목적과 사용..

    추상 클래스(Abstract Class)

    📙 1. 추상클래스란? public abstract class Player { abstract void play(); abstract void stop(); } 클래스를 설계도라고 한다면, 추상클래스(Abstract Class)는 미완성 설계도라고 할 수 있다. 여기서 말하는 미완성은 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스를 생성할 수 없다. 추상 클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 추상 클래스는 클래스에 추상화를 접목시켜 보다 구조적이게 객체를..