[JAVA] 상속 / 생성자

이수민·2024년 8월 29일

1. 상속

  • '부모클래스🐓를 자식클래스🐥가 물려받는다'는 의미
  • java는 한 번에 하나의 부모클래스만 상속받을 수 있다.
  • private 접근 제한을 갖는 멤버변수 및 메소드는 물려받을 수 없다.

class C extends P {ㆍㆍㆍ}
extends 발견
→ 자식(C)이 부모(P)를 물려받는다. (상속)
→ 상속이므로 부모부터 찾자!


2. 생성자

  • 기본 생성자 : A( ) {ㆍㆍㆍ} 의 형태, 매개변수 없음
  • 매개변수 생성자 : A(int a) {ㆍㆍㆍ}의 형태, 매개변수 있음

📌 super( ); 의 기능

1. 부모클래스🐓의 생성자 호출

  • super( ); : 보통 생략되어 안 보임부모의 기본 생성자 호출 (매개변수 없는 생성자)

  • super(a); : 인자가 있어서 생략 불가부모의 매개변수 생성자 호출

여기서 매개변수(a)의 값을 부모한테 전달한다.
super(a/10);
→ a/10을 연산하여 부모클래스에 a값으로 전달한다. (a=100)
그러나 자식클래스에서는 여전히 연산하기 전의 값인 a이다. (a=1000)

2. 부모클래스🐓의 메서드, 속성에 접근

  • super.display( ); : 자식에서 부모의 display( ) 함수를 호출
    (※ display( ) 함수는 부모한테 정의되어있다)

📌 this( ); 의 기능

  • 해당 클래스기본 생성자를 호출

📌 부모의 형태로 자식을 정의할 때

Parent p1 = new Child( );
// 🐓 p = new 🐥();
  • 부모클래스에서 정의된 메서드 → 부모클래스의 변수를 참조

  • 자식클래스에서 정의된 메서드 → 자식클래스의 변수를 참조

  • 메서드 내에서 사용하는 변수 a는 해당 클래스에 정의도니 변수를 참조한다.

  • 부모가 가지고 있는 메서드만 사용할 수 있다.

  • A ab = new B( ); : 앞의 형태가 A 이므로, A에 정의된 변수 값을 사용한다.
  • B ab = new B( ); : 앞의 형태가 B 이므로, B에 정의된 변수 값을 사용한다.

0개의 댓글