추상 클래스는 인터페이스와 마찬가지로 하위 클래스를 구현 되어야 하는 기능을 선언하여 상속 받는 하위 클래스가 구현하도록 하지만 인터페이스보다 느슨한 추상화를 제공한다. 인터페이슨느 상수와 추상 메서드만을 포함하지만 추상 클래스는 구현된 메서드와 멤버변수를 포함할 수 있기 때문이다. 1. Main 클래스 public class Main { public static void main(String[] args) { // VendingMachineControl vmc = new CoffeeMachine(); // vmc.on(); // vmc.insertMoney(); // vmc = new CarMachine() // useVM(new vmc); // vmc = new CarMachine(); useVM(n..