티스토리 뷰

오버라이딩과 추상화의 차이점은

 

 

> 오버라이딩: 서브클래스에서 부모클래스 메소드의 쓰임을 변경하고자 할 때 쓰입니다. 이 때 주의할 점은 리턴타입, 메소드명, 파라미터 타입이 반드시 똑같아야 한다.

 

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