풀스택 웹🌐 개발자 지망생 🧑🏽‍💻
➕ 인공지능 관심 🤖


Categories


Recent views

  • 1
  • 2
  • 3
  • 4
  • 5

JAVA 기본-자바 상속

  1. 자바의 상속

자바 상속

자바의 상속

상속(Inheritance)

상속의 개요

  • 기존의 클래스의 요소를 이용해 새로운 클래스를 정의하는 것,
  • 기존의 클래스 (기본 클래스(base class), 상위 클래스(super class), 부모클래스(parent class))
  • 새로운 클래스( 확장된 클래스, 파생 클래스, 하위 클래스(subclass), 자식 클래스(child class))
  • 상속 형식:
    modifiers class 클래스명 [extens 부모클래스명]{
    // 클래스멤버 부분
    }
  • 중복되는 공통적인 특성은 다시 만들지 않아도 되므로 코드 재사용성, 가독성 유지 보수성 증가
  • 부모 클래스와 자식 클래스는 is a 관계(일반화, 특성화의 관계)에 있어야함
  • 자식클래스는 부모클래스이다 라는 관계여야 함
  • 상속은 상속을 받고 추가적인 것들을 확장한다는 의미가 중요함
  • 자바는 개발의 편의성과 가독성을 위해 문법적으로 단일 상속만을 허용함

    상속과 생성자

    1) 생성자 자동호출

  • 상속된 부모 클래스 객체가 생성될 때 부모 클래스의 생성자도 자동으로 호출되어 수행되면서 객체 초기화가 이루어짐
  • super() 생성자를 통해 부모 클래스의 생성자를 명시적으로 호출할 수 있음, 반드시 생성자의 첫 번째 라인에 위치해야함
  • 즉, 부모 클래스의 생성자가 항상 자식 클래스의 생성자보다 먼저 수행되어야 함

    상속과 멤버

    상속과 변수

  • 상속의 경우 private으로 선언된 변수는 상속되지 않는다.
  • 또, 만약 부모클래스의 변수 이름과 같은 이름의 변수를 자식 클래스가 선언하면 상속에서 제외됨
  • 이는 클래스변수, 인스턴스 변수를 가리지 않음
  • super 예약어, 즉 super.변수이름를 통하여 같은 이름이여도 부모의 변수에 접근할 수 있다.

    상속과 메서드

  • 메서드의 overriding 부모 클래스의 메서드를 사용하지않고 새롭게 정의하여 사용하는 것,
  • 상속관계에 있는 클래스에서 자식클래스가 부모클래스의 메서드를 재정의 해서 가지고 있는 개념
  • 부모클래스의 메서드와 메서드 이름, 매개변수의 유형과 개수가 동일해야 함
  • 만약 오버라이딩 했지만 부모 클래스의 메서드를 사용하고 싶으면 super.메서드이름 을 통해서 사용 할 수 있음
  • 만약 그 메서드 시그니처가 다르면 메서드 오버라이딩이 아닌 메서드 오버로딩이 나타나게됨
  • 메서드 오버로딩 : 하나의 클래스에 동일한 이름의 메서드가 여러 개 중복 정의되어 있는 것, 메서드 매개변수의 개수나 타입이 달라야 함
  • 메서드 오버라이딩 : 상속 관계에 있는 두 개의 클래스에서 부모가 가진 메서드와 동일한 시그니쳐를 가진 메서드가 자식 클래스에서 재정의 되어 있는 것
  • 만약 final 예약어가 메서드 앞에 붙으면 오버라이딩이 금지됨