객체생성용이 아니라 오로지 상속구조를 위해 설계하는 클래스, 문법적으로 객체생성을 못하도록 막음 객체생성 불가한 클래스
추상(abstract)메소드가 있으면 클래스는 반드시 추상 클래스여야한다
자식클래스에서 추상메서드를 오버라이딩 하고싶지않으면 자식클래스로 abstract 선언을 해줘야한다
//Dog, Cat, Pig의 부모클래스
//상속구조를 목적으로 설계하는 클래스 - 객체생성 목적이 아님
//문법적으로 객체생성을 못하도록 막는 문법 : abstract
//추상클래스라고 부름
public abstract class Animal {
//오버라이드용 메소드 - ()가 있으면 작업하다 만 느낌
//이름만 있는 메소드임을 명시하는 문법
// => 추상메소드
abstract void say();
}
=> 추상클래스를 사용하려면 상속한 클래스를 설계하여 객체로 생성하여 사용
생성방법
접근제한자 뒤에 abstrack 키워드를 붙인다