[JAVA] 상속

오태영·2024년 8월 13일

상속이란?

다른 클래스가 가지고 있는 필드, 메소드들을 새로 작성할 클래스에서 직접 만들지 않고
상속을 받아 새 클래스에서 사용할 수 있는 기능을 말합니다.

상속의 장점

그럼 상속을 사용하면 어떤 장점이 있을까요?

  1. 기존에 만들어져있는 것들을 사용해서 새롭게 작성할 코드의 양이 줄어듭니다.
  2. 기존에 만든 코드를 공통적으로 여러곳에 사용해 코드의 오류가 생겼을 시 수정이 용이합니다.
  3. 코드의 중복을 제거하여 생산성이 증가하고 유지보수가 쉬워집니다.

상속의 특징

상속을 사용하려면 필수적으로 알아야하는 특징이 있습니다.

  1. 모든 클래스는 Object클래스의 후손이다.
  2. 부모클래스의 생성자, 초기화 블록은 상속되지 않는다.
  3. 부모의 private멤버는 상속은 되지만 직접 접근이 불가하다.

그럼 본격적으로 상속에 대해서 알아보겠습니다.
먼저 상속을 선언하는 형식은 다음과 같습니다.

[접근제한자] class 클래스명 extends 상속할클래스명(부모) {}
public class BusinessMan extends Man{}

그럼 이제 예시를 들어보겠습니다.

제가 만들 방식은 Man이라는 클래스를 상속해주는 방식입니다.
우선 미리 상속할 클래스를 만들어줍니다.

package aaa;

public class Man {
	private String name;

	public Man() {
		super();
	}

	public Man(String name) {
		super();
		this.name = name;
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void tellYourName() {
		System.out.println("My name is " + this.name);
	}
}

그후 상속을 받을 클래스를 만들어줍니다.

package aaa;

public class BusinessMan extends Man{
	private String company;
	private String position;
	
	public BusinessMan(String name, String company, String position) {
		super(name);
		this.company = company;
		this.position = position;
	}
	
	public void tellYourInfo() {
		System.out.println("My company is " + this.company);
		System.out.println("My position is " + this.position);
		super.tellYourName();
	}
}

위와같이 Man이라는 클래스에서는 name이라는 변수를 만들었고 이를 BusinessMan이라는 클래스에 상속을 해주었습니다.

그 다음 아래와 같이 실행해보면..

BusinessMan man = new BusinessMan("김개똥","사성", "인턴");
man.tellYourInfo();

사진과 같은 결과가 나오게 됩니다.
이를 통해서 상속의 기본적인 속성으로 BusinessMan은 Man의 기본 속성인 name을 사용할 수 있다는 것을 알 수 있습니다.

profile
개발자 지망생

0개의 댓글