프로그래밍 학습 일지 - 자바/과제

20230724 학습보고서. 인터페이스와 추상클래스

돌아온 개밥그릇 2023. 7. 24. 13:18

 

"왕위를 계승하는 중입니다. 아버지."

아서스 

 


 

목차
  1. 인터페이스란?
  2. 문법
  3. 추상클래스와의 공통점과 차이점

  1. 인터페이스란?

  모든 필드가 "상수 필드" 이고, 모든 메서드가 "추상 메서드"인 추상 클래스의 변형체를 말하며, 필드는 무조건 상속필드, 메서드는 무조건 추상메서드다. 추상클래스와는 달리 좀 더 강한 규칙성, 강제성을 갖고 있으며 다중 상속을 허용한다. 상수 필드명이 겹쳐도 [클래스명.필드명]으로 접근하기에 상관없고, 메소드에 대한 정의만 하고 최종 구현 부분 하나만 잘 정의하면 되기 때문이다.

 

  2. 문법

인터페이스 적용 후 라는 문구는 무시해도 좋다. 인터페이스 내에서 객체 생성이 불가하다는걸 알려주기 위해 캡쳐했을 뿐.
참조변수로 사용은 가능. 즉, 다형성을 적용하여 자식타입을 받아 줄 수 있다.

  3. 추상클래스와의 공통점과 차이점 

   1) 공통점
   객체 생성은 안되나, 참조변수로써는 사용이 가능 - 다형성 적용하고 상속 (구현)하는 자식클래스에 추상메소드를 오버라이딩 할 수 있게끔 한다.
   2) 차이점
   추상클래스는 클래스 내에 일반 필드, 일반 메소드 작성 가능
   추상메서드가 포함되어 있지 않더라도 abstract 키워드를 이용하여 추상클래스로 정의 가능
   인터페이스는 모든 필드가 상수 필드, 추상 메서드로 정의된다.
   존재하는 목적이 다르다.
   추상클래스는 상속 받아서 기능을 이용하고 클래스를 "확장" 시키는 개념 (extends)
   인터페이스는 상속받은 기능의 구현을 강제하기 위해 사용 (implements). (구현을 강제함으로써 동일한 기능 보장)   

클래스 밑에 내용이 있고 - 이미 일기장에 작성해서 구태여 캡쳐하지 않았다.

캡쳐본의 설명처럼 상수필드와 추상 메서드만 정의할 수 있기 때문에 앞에 public abstract 생략 가능함.

반응형