abstract 란 추상화를 의미합니다.
추상화란 명확하게 정의되어 있지 않은 형태를 의미합니다.
그래서 abstract class 란 abstract method 를 하나 이상 가지고 있는 추상클래스를 의미하며
abstract method는 명확한 기능이 정의되어 있지 않은 메소드를 의미합니다.
예시
public abstract class GrandParent {
// 추상 클래스는 메소드를 만드는데, 메스드의 이름만 있는 클래스!!!
// 내용은 아직 정해지지 않았다.
String name;
int age;
public abstract void print();
public int future() {
return age+=20;
}
}
abstract void print() 메소드가 있어 GrandParent 클래스는 abstract 클래스가 된다.
그럼 이 abstract 를 왜 사용하냐?
부모 클래스 입장에서는 자식 클래스에게 반드시 이 기능을 정의해 줄 것을 요구하지만 부모는 그 자식이 어떠한 기능으로 정의할지 모르기때문에 추상적으로만 남겨두도록 하는 방법입니다.
예를 들어 생물이라는 부모 클래스와 사람, 개미라는 자식 클래스가 있다고 가정합니다.
부모인 생물은 팔다리 갯수를 반드시 이용해야합니다.
그런데 부모는 사람,개미와 같은 자식들의 팔다리 갯수는 모릅니다. 사람인 자식은 팔다리 갯수 총합 4개 , 개미는 6개 입니다. 즉 자식들은 반드시 필요한 기능이기에 정의를 하여 자신들의 갯수를 알지만, 부모는 모르기때문에 추상적이게 됩니다.
'개발 > 자바' 카테고리의 다른 글
Java - 문자열 처리 함수 (0) | 2023.01.25 |
---|---|
Java - wrapper class (Integer,Float 등등) (0) | 2023.01.25 |
Java - 상속(extends) , 부모클래스(super), 내 클래스 (this), 메소드 오버라이딩 (0) | 2023.01.20 |
Java - 접근제한자 (0) | 2023.01.20 |
Java - 메소드 오버로딩 (0) | 2023.01.18 |