TIL ... 2주차 day 8 추상 클래스와 인터페이스 - 22.05.18

BYEONGMIN CHOI·2022년 5월 18일
0

TIL(Today I Learned)

목록 보기
6/24

오늘은 자바의 추상 클래스와 인터페이스에 대한 이해한 부분에 대해 정리 해보고 추가적인 정보를 기재하는 방식으로 진행해 볼려한다.


추상 클래스 (abstract class)

설계만 되어 있고 구현체가 없는 것 -> method의 리턴타입, 함수명, 파라미터만 선언, 중괄호 구현하지 않는다. -> 구현하지않은 내용은 자식 클래스에서 구현하여 method를 완성 시킨다.

  • 이는 추상클래스를 상속받는 자식 클래스가 반드시 추상 클래스의 메소드를 재정의 하기 위함이라 이해

  • 추상 클래스는 객체 지향 프로그램밍에서 중요한 특징인 다형성을 가지는 메소드의 집합이라 정의한다.
abstract class 클래스이름 {
	
    
    abstract 반환타입 메소드명();
}
  • 위의 코드 처럼 추상 클래스는 동작이 정의되어 있지 않은 추상 메소드를 포함하고 있으므로, 인스턴스를 생성할 수 없다.

  • 추상 클래스는 먼저 상속을 통해 자식클래스를 만들고, 만든 자식 클래스에서 추상 클래스의 모든 추상 메소드를 오버라이딩하고 나서 자식 클래스의 인스턴스를 생성한다.

  • 추상 클래스는 추상 메소드를 포함하고 있다는 점을 제외하면, 일반 클래스와 모든점이 같다.
    -> 생성자와 필드, 일반 메소드 모두 포함할 수 있다.

인터페이스(Interface)

객체으 특정 행동에 특징을 정의하는 것으로, 추상 클래스에서 메소드만 선언하는 것처럼 사용할 수 있다.
그러나 자바에서는 클래스를 이용한 다중 상속을 할 경우 메소드의 모호성 등 여러가지 문제(?)(무엇이 있을까?)가 발생 한다.


다중 상속이라는 이점을 활용하기 위해 인터페이스(interface)를 사용하고 다른 클래스를 작성할 때 선언된 메소드를 구현하면된다.

접근제어자 interface class 클래스이름 {
	public static final 타입 상수이름 =;
    
    public abstract 반환타입 메소드명();
}

인터페이스의 장점

  • 인터페이스를 사용하면 다중 상속이 가능할 뿐만 아니라 다음과 같은 장점이 있다.

    1. 대규모 프로젝트 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능하다.
    2. 클래스의 작성과 인터페이스의 구현을 동시에 진행하므로, 개발 시간을 단축할 수 있다.
    3. 클래스와 클래스 간의 관계를 인터페이스로 연결, 클래스마다 독립적인 프로그래밍이 가능하다.

참고 사이트) http://www.tcpschool.com/java/java_polymorphism_interface

추상화, 인터페이스 사용하여 클래스 구성 - 항해99 과제 : https://github.com/DeveloperChoi90/W2_homeWork

profile
스스로 성장하는 개발자가 되겠습니다.

0개의 댓글