Programming/JAVA

추상화 (Abstract / Interface)

dev? 2022. 5. 5. 21:47
반응형

추상화 (abstract)

- 클래스를 상속받으면, 특정 함수를 강제로 만들도록 강제하는 것

(일반 클래스를 추상 클래스로 만드는 것을 추상화라고 한다

= 상속받은 자식 클래스에게 특정 함수를 강제로 만들게 하는 방법)

 


추상 클래스 (abstract class)

- 무조건 상속되어 사용하는 클래스

(추상 클래스를 상속받은 자식 클래스는 반드시 추상 메서드를 구현해야 한다)

- new로 객체 생성 불가능 

(객체 생성 불가능을 제외하면 일반 클래스와 동일하다)

 

추상 메서드 (abstract method)

- 추상 클래스에 정의된 메서드 

- 메서드의 내용이 정의되지 않은 형태의 메서드

- 반드시 오버라이딩해야만 사용 가능 

 

사용 예제

abstract class Parent{
	abstract void exam01(); // 추상 메소드
}


class Child extends Parent{
   @Override 
    void exam01(){
    }
}

인터페이스 (Interface)

- 추상 메서드로 구성된 추상클래스

(= 상속받는 자식클래스에서 강제적으로 함수를 만들게 함)

- new 객체로 생성 불가능

( 단독으로 사용 불가 = 상속되어야만 사용 가능 )

- 다중 상속 가능 

 

사용 예제

interface Parent{
	void method01();
    void method02();
}

class Child implements Parent{
	void method01(){
    }
    
    void method02(){
    }
}

 

반응형