- 오버라이딩과(Override) VS 추상화(abstract)의 차이점 목차
오버라이딩과 추상화의 차이점은
> 오버라이딩: 서브클래스에서 부모클래스 메소드의 쓰임을 변경하고자 할 때 쓰입니다. 이 때 주의할 점은 리턴타입, 메소드명, 파라미터 타입이 반드시 똑같아야 한다.
abstract : 보통 추상클래스나 추상 메서드라고 선언할 때 쓰인다. 추상클래스는 객체를 생성할 수 없습니다. 추상 메서드는 이러한 메서드를 사용할꺼다 라고 리턴타입과 메서드명 그리고 파라미터만 명시할 뿐이고 직접적인 구현은 이 추상 메서드를 상속받은(추상메서드를 가지는 클래스는 반드시 추상 클래스입니다) 서브 클래스에서 하게 됩니다.
결과적으로
오버라이딩 : 부모쪽에서 메소드를 선언한 것을 자식 클래스에서 extends (상속)받아 그 부모 메소드를 재정의(오버라이딩) 하여 자식 고유의 메소드로 만드는 것. (메소드 이름과 리턴타입 및 파라미터가 같아야한다 )
abstract : 특정 클래스에서 추상화 메소드가 생성되면 그 클래스는 무조건 abstract 클래스가 되며 추상화 메소드를 명확하게 해주지 않으면 오류가난다. 명확히 할때에는 abstract클래스를 extends하여 abstract 메소드()를 구현(오버라이딩)해준다.
abstract하지 않은 일반 메소드도 올 수 있다.
또한 추상 클래스에서는 객체를 생성할 수 없다.
'Java' 카테고리의 다른 글
클래스의 접근 제어자 (0) | 2019.09.15 |
---|---|
자바 final (0) | 2019.09.15 |
접근제어자 & 사용이유 (0) | 2019.09.12 |
참조 (reference) (0) | 2018.09.04 |
enum (0) | 2018.09.04 |