쫑쫑이의 블로그

객체지향 4대 특성 - 추상화 (Abstract) 본문

공부/JAVA

객체지향 4대 특성 - 추상화 (Abstract)

쫑쫑2 2022. 9. 7. 22:46

잡설로 Abstract을 보면 논문 가장 앞에 써있던 초록이 생각난다

 

공통적인 기능을 구체적인 내용(메서드 바디)은 정의하지 않고,  
메서드 시그니처(메서드명, 반환타입, 매개변수)만 정의하는 것으로 알고 있다

 

==================================================================================

 

추상화를 사용하면 코드 재사용성을 높혀 코드 중복을 줄이고 유지보수하는데 용이하다

 

추상 클래스

추상 클래스는 추상 메서드를 1개 이상 갖는 클래스이다
추상 클래스는 객체를 생성 할 수 없다
abstract 제어자를 클래스와 추상 메서드 앞에 적어준다
하나의 추상 클래스만 상속받을 수 있다
다른 클래스처럼 extends를 붙여 상속한다

추상 클래스는 일반적인 메서드와 변수를 멤버로 가질 수 있다

 

 

Interface

추상 클래스와 다르게 extends가 아닌 implements를 붙여 상속한다
한 클래스는 여러 인터페이스를 상속받을 수 있다 (다중 상속)
상수와 추상 메서드만 멤버로 갖는다
변수는 public static final , 메서드는 public abstract가 기본형태
(자바 8 이후에 default/static 메서드 사용가능)

interface를 상속받은 클래스는 모든 추상 메서드의 메서드 바디를 구현해야한다

 

 

final 키워드

  • 변수 앞에 붙이면 변수 값 변경할 수 없다
  • 메서드 앞에 붙이면 오버라이딩할 수 없다
  • 클래스 앞에 붙이면 상속할 수 없다