#상속, 인터페이스

김유미·2022년 1월 10일
0

2022년 1월 10일 추움💠

프롤로그

오늘은 상속/오버라이딩/인터페이스/다형성에 관해서 배웠습니다. 머릿속에서 둥둥 떠다니는 느낌,,,복습해서 최대한 이해해보도록 하겠습니다.

상속

  • 객체 지향 프로그램에서 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있습니다.
  • 상속은 코드의 중복을 줄여줍니다.
  • private 접근자 : 다른 클래스 상속 불가
  • default 접근자 : 다른 패키지에 존재한다면 상속 불가
  • 상속을 이용하면 클래스의 수정을 최소화하기 때문에 유지보수에 효율적

    class 자식클래스 extends 부모클래스 {
    }

  • 자바는 다중상속을 허용하지 않는다.

오버라이딩 (Overriding)

overloading 과 overriding 개념 차이 면접에서 기본적으로 묻는 질문
오버로딩 : 하나의 클래스에 같은 이름의 메소드를 여러개 정의하는 것

  • 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것

타입변환과 다형성

  • 클래스 타입도 타입 변환이 있다.
  • 자식타입은 부모타입으로 자동 타입 변환이 가능하다.
  • 다형성 : 동일한 타입을 사용하지만 다양한 결과가 나오는 성질
    • 필드의 다형성
      : 필드의 타입은 변함이 없지만 실행 도중에 어떤 객체를 필드로 저장하느냐에 따라 실행 결과가 달라질 수 있는 것
    • 매개 변수의 다형성
      : 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록하는것

추상클래스

  • 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스
  • 추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다.

<추상 클래스 용도>

    1. 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적
    1. 실체 클래스를 작성할 때 시간 절약

인터페이스

public interface 인터메이스명 { }

  • 클래스는 필드, 생성자, 메소드를 구성멤버로 가지는데 비해 인터페이스는 상수와 메소드만을 구성 멤버로 가진다.
  • 인터페이스는 객체로 생성할 수 없기 때문에 생성자를 가질 수 없다.
  • 구현 클래스

    public class 구현클래스명 implements 인터페이스명 {
    }

  • 다중상속은 불가하지만 다중 인터페이스는 구현할 수 있다.

<예제>

0개의 댓글