추상이란 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용

Java에서 추상클래스란

public abstract class Animal {
	String name;
	int age;
	
	void showInfo() {
		System.out.println("이름: "+name+", 나이: "+age);
	}
	
	public Animal(String name, int age) {
		this.name=name;
		this.age=age;
	}
	//추상메서드를 허용한다.
	//추상메서드란
	//추상메서드는 {}없이 헤더만 선언된 메서드: 미완성 메서드
	public abstract void move();
	public abstract void sound();
}
//public abstract class Cat extends Animal{}
public class Cat extends Animal{
	public Cat(String name, int age){
		super(name,age);//==Animal();
	}

	@Override
	public void move() {
		System.out.println(name+"는 사뿐사뿐 걸어가요");		
	}
	//상속관계에서 부모의 메서드를 수정권한을 주는데
	//Override라 한다.

	@Override
	public void sound() {
		System.out.println("야옹~~야옹~~");
		
	}
	
}

실행테스트

public class AnimalTest {

	public static void main(String[] args) {
		//Animal animal=new Animal("강아지", 10);
		Animal animal=new Cat("고양이",3);
		animal.showInfo();
		animal.move();
		animal.sound();
	}

}
이름: 고양이, 나이: 3
고양이는 사뿐사뿐 걸어가요
야옹~~야옹~~

추상 클래스를 사용하는 이유?