프로그래머스 스진초 과제를 진행하면서 작성한 내용입니다.
객체지향의 특징으로는 추상화, 캡슐화, 상속, 다형성이 있다.
그중에서도 인터페이스
가 가지고 있는 객체지향의 특징은 추상화라고 생각한다.
인터페이스에서 메서드를 정의해놓고, 이를 구현한 클래스에서 구현을 하는것이 딱 추상화이다.
아래 코드로 예를 들어보자.
// 인터페이스 정의
interface Animal {
void makeSound();
}
// 인터페이스를 구현하는 클래스
class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("멍멍!");
}
}
class Cat implements Animal {
@Override
public void makeSound() {
System.out.println("야옹!");
}
}
public class Main { // 인터페이스를 사용한 메인 클래스
public static void main(String[] args) {
Animal dog = new Dog();
Animal cat = new Cat();
dog.makeSound();
cat.makeSound();
}
}