개발중/Java

추상 클래스가 하는 일

Binsoo 2021. 5. 19.
728x90
반응형

추상 클래스 이해하기 🌜


언니, 이게 추상 클래스 라는 거에요 !

이걸 보면 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();
}

그럼 추상 메소드 안에서 하는 일은 ( 예시에요, 모든 추상 메소드가 이런건 절대 아닙니다. ! 😵 )

  • 변수 선언
  • 값 초기화 해주는 메소드
  • 함수를 실행시키는 메소드
  • 추상 메소드 선언

 

728x90
반응형

댓글