본문 바로가기
Java , Spring/Java

[Java] 추상클래스, 인터페이스(abstract class, )

by 방배킹 2023. 2. 3.

추상클래스(abstract class)

추상클래스란 하나 이상의 추상 메소드를 포함하는 클래스

 

추상메서드(abstract method)

메서드가 선언은 되어있지만 구현은 안되어있다.

자식 클래스에서 반드시 오버라이딩을 해야한다. (오버라이딩 - 메서드 이름, 매개변수 타입, 매개변수 개수가 동일)

자식 클래스에서 오버라이딩해서 직접 구현을 해야한다.

 

abstract class Animal {
    abstract void cry();
}

class Cat extends Animal{
    @Override
    void cry() {
        System.out.println("야옹");
    }
}

class Dog extends Animal{
    @Override
    void cry() {
        System.out.println("멍멍");
    }
}

 

 

인터페이스(interface)

필요한 기능을 인터페이스로 만들어서 해당 기능이 필요한 클래스에게 부여

 

다중상속이 가능하다.

추상메서드만 존재한다(구현된 소스 작성 불가)

그렇기에 자식클래스는 부모 인터페이스의 추상 메서드를 오버라이딩해서 구현해야한다.

 

 

인터페이스가 잘 이해가 안간다면 아래 글을 읽어보자

https://myjamong.tistory.com/150

 

[JAVA] 추상클래스 VS 인터페이스 왜 사용할까? 차이점, 예제로 확인 :: 마이자몽

추상클래스 인터페이스 왜... 사용할까? 우리는 추상클래스와 인터페이스에 대해서 알고 있냐고 누가 물어본다면 알고 있다고 대답을 하고있습니다. 그런데 이론적인 내용 말고 정작 "왜 사용하

myjamong.tistory.com

 

 

extends : class -> class

extends :interface - .interface

implements: class -> interface

 

정리

즉, 존재의 목적에 차이가 있다.

 

추상클래스는 상속을 받아서 기능을 재활용하고 확장시킨다.

인터페이스는 함수의 구현을 강제해서 구현한 객체들이 같은 동작을 하는것을 보장한다

댓글