추상클래스(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
정리
즉, 존재의 목적에 차이가 있다.
추상클래스는 상속을 받아서 기능을 재활용하고 확장시킨다.
인터페이스는 함수의 구현을 강제해서 구현한 객체들이 같은 동작을 하는것을 보장한다
'Java , Spring > Java' 카테고리의 다른 글
[Java] JVM , Java compiler, Java 코드 실행과정 JDK,JRE,JVM (0) | 2024.01.09 |
---|---|
[Java] next(), nextLine() 차이 (0) | 2024.01.07 |
[Java] Optional (0) | 2023.09.15 |
[Java] Thread(쓰레드) 생성, 실행 (0) | 2023.05.14 |
[Java] 오버라이딩, 오버로딩 (Overriding, Overloading) (0) | 2023.02.03 |
댓글