본문 바로가기
[JAVA]/[자바 기초]

[자바 기초] 상속

by 북방바다코끼리표범 2023. 8. 7.

복습

https://shins99.tistory.com/25

 

[자바 기초] 배열

복습 https://shins99.tistory.com/23 [자바 기초] static 복습 https://shins99.tistory.com/21 [자바 기초] C R U D 의 개념 복습 https://shins99.tistory.com/20 [자바 기초] this 키워드 복습 https://shins99.tistory.com/18 [자바 기초]

shins99.tistory.com


상속

💡 학습 목표 
1. 상속에 대핸 개념을 이해 하자. 
2. 상속 extends 키워를 사용해서 문법을 완성해 보자.

1. 상속에 대핸 개념을 이해 하자.

기능적으로 더 큰 클래스는 자식 클래스 입니다.

 

상속을 구현하는 경우

● 상위 클래스는 하위 클래스 보다 더 일반적인 개념과 기능을 가짐

● 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐

 

용어 정리

● 상속하는 클래스 : 상위 클래스, parent class, super class

● 상속받는 클래스 : 하위 클래스, child class, subclass

 

클래스 상속(Ingeritance)

- 자식 클래스가 부모 클래스의 멤버변수, 메서드를 물려 받음

- 새로운 클래스를 정의할 때, 이미 구현된 다른 클래스를 상속받아서 속성,기능을 확장시켜 클래스를 구현

   → 상속을 하는 부모 클래스보다 상속을 받는 자식 클래스의 데이터가 더 크고 구체적임

            (== 부모 클래스는 자식 클래스보다  더 일반적)

class 자식클래스 extends 부모클래스 {
	코드;
}

.- 상속받는 클래스끼리 멤버변수/메서드가 동일하면, 자식 클래스 파일에서는 코드를 제거하고 부모 클래스에만 입력해도 상속받아서 사용 가능

- 자식 클래스 객체로 어떤 메서드를 실행하면, 우선 자식 클래스 자신에게 그 메서드가 있는지 확인한다.

   →  자신에게 그 메서드가 없다면 부모 클래스에 있는 메서드 확인해서 사용

   →  메서드 오버라이드 = 부모 클래스의 메서드를 자식 클래스가 재정의

 

package ch01;

public class A {
	String name;
	int height;
	int weight;
	int age;

	// main 함수 테스트 - 잠시 자리만 빌림
	public static void main(String[] args) {
		C c1 = new C();
		c1.age = 10;
		System.out.println(c1.age);
	} // end of main
} // end of class

// 하나의 .java 파일안에서 여러개의 클래스를 
// 설계할 수 있다. 
// 단. 하나의 자바 파일에서 접근제어 지시자  public class  
// 단 하나만 설계 가능하다. 
class B {

	String name;
	int height;
	int weight;
	int age;
	String tel;

}

class C extends A {

	String phone;

}

상속 시 접근 제어자

- 기존의 멤버변수처럼 private를 선언하면 타 패키지의 하위 클래스에서 접근 불가

    → 패키지 외부 클래스는 접근 불가 하지만 하위 클래스 경우는 접근 가능한 protected 사용

 

다중 상속 불가능

- 예외 사례 단 한가지 (Object 클래스)

 

 

하위 클래스의 생성

-하위 클래스의 생성자에선 반드시 상위 클래스의 생성자를 호출함(자동으로 메모리 로드)

   → 명시하지 않을 시 기본 생성자 호출됨

 

부모 클래스에 사용자 정의 생성자가 있는 경우

자식 클래스의 생성자에서 반드시 부모 클래스의 생성자를 먼처 호출해야 한다.

(부모 클래스에 기본 생성자가 없기 때문에 오류발생)

 

super 키워드

- 하위 클래스가 가지는 클래스에 대한 참조 값

- 상위 클래스의 생성자를 호출

'[JAVA] > [자바 기초]' 카테고리의 다른 글

[자바 기초] 다형성  (1) 2023.08.09
[자바 기초] 상속 활용하기  (0) 2023.08.08
[자바 기초] 책 스토어 프로그램 만들어보기 C R U D  (0) 2023.08.04
[자바 기초] 배열  (0) 2023.08.04
[자바 기초] static  (0) 2023.08.03