추상 클래스 이해하기 🌜
언니, 이게 추상 클래스 라는 거에요 !
이걸 보면 Calculator 라는 Class 가 정의 되어 있어요.
abstract class Calculator{
}
근데 언니가 아는 클래스랑 뭔가 다르죠 ?
언니가 사용하던 Class 는 아래 같이 생겼었는데
class SoobinClass {
public static void main(String[] args) {
}
}
이번에 나온 Class 는 앞에 abstract 를 달고 있죠 ?
abstract 이 단어부터 들여다보면 아래와 같은 뜻이래요 "추상적인"
대충 이걸 만든 사람이 abstract 라는 단어를 사용해서 표현한 것 보니까 이거랑 관련이 있겠죠 ??
추상 메소드
abstract class Calculator{
int left, right;
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
public abstract void sum();
public abstract void avg();
public void run(){
sum();
avg();
}
}
이 추상 메소드가 구성하고 있는 것들을 하나씩 짚어 볼께요. 😂
변수 선언
두개의 변수를 가지고 있어요.
int left, right;
값 초기화
setOprands() 가 하는일은 left 와 right 를 초기화 시켜주고 있죠 ?
setOprands 에게 setOprands( 10, 20 ) 이라고 보내주면
this.left = 10;
this.right = 20;
이렇게 해주는 꼴이겠죠.
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
추상 메소드 선언
그리고 이 두가지의 추상 메소드가 선언 되어 있어요!
근데 애는 몸통이 없죠 ?
public abstract void sum();
public abstract void avg();
보통 메소드는 이런식으로 선언이 되는데 ,,
public void avg(){
}
public void sum(){
}
메소드 선언
이건 언니가 아는 메소드랑 똑같은 일을 하고 있어요 !
나름 친숙하죠.. ?
다른 곳에서 run () 을 실행하면
run 이 sum() 이랑 avg() 에게 일을 시킬꺼래요
public void run(){
sum();
avg();
}
그럼 추상 메소드 안에서 하는 일은 ( 예시에요, 모든 추상 메소드가 이런건 절대 아닙니다. ! 😵 )
- 변수 선언
- 값 초기화 해주는 메소드
- 함수를 실행시키는 메소드
- 추상 메소드 선언
'개발중 > Java' 카테고리의 다른 글
추상 클래스를 상속 받는 친구를 이용하기 (0) | 2021.05.19 |
---|---|
추상 클래스를 상속 받는 친구가 하는 일 (0) | 2021.05.19 |
문자열이 List에 포함 되었는지 여부 확인 (0) | 2021.05.18 |
Java - String 날짜형 Type 검사 (0) | 2021.05.17 |
LOMBOK - NoArgsConstructor/AllArgsConstructor 사용 (0) | 2021.05.14 |
댓글