JAVA

[JAVA] 상속(Inherit)

기정님 2025. 4. 25. 10:10

▶ 상속

다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능

 상속의 목적

클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의

 상속의 장점

1. 보다 적은 양의 코드로 새로운 클래스 작성 가능 2. 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이 3. 코드의 중복을 제거하여 프로그램의 생산성/유지보수에 크게 기여

 

▶ 상속의 특징

1. 모든 클래스는 Object클래스의 후손

Object클래스가 제공하는 메소드를 오버라이딩하여 메소드 재구현 가능 ex) java.lang.String 클래스의 equals()와 toString()

2. 부모클래스의 생성자, 초기화 블록은 상속 안 됨

자식 클래스 생성 시, 부모 클래스 생성자가 먼저 실행 자식 클래스 생성자 안에 부모 클래스 생성자를 호출하고 싶으면 super() 활용

3. 부모의 private멤버는 상속은 되지만 직접 접근 불가

자식 객체 생성 시에 부모의 필드 값도 전달 받은 경우, 자식 생성자 안에서 부모의 private 필드에 직접 접근하여 대입 불가 super() 이용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨 생성하거나 setter, getter 메소드를 이용하여 접근

 

▶ 상속

▶ 단일 상속과 다중 상속


▶ super()와 super.

 

public class Parent {
	private int num;
	double dNum;
	protected boolean bool;
	public char ch;
	
	public Parent() {
		
	}
	
	public void setNum(int num) {
		this.num = num;
	}
	public int getNum( ) {
		return num;
	}
}

 

public class Child2 extends Parent{
	
	private String str;
	
	public Child2() {
		super();
//		super.dNum = 10;
//		super.bool = true;
//		super.ch = 'A';
//      super.로 접근가능
	}
	
	public void setStr(String str) {
		this.str = str;

	}
	public String getstr() {
		return str;
	}
}

상속을 받았다면 super로 통해서 접근이 가능하지만 그게 아니라면 new 인스턴스()를 통해서 직접 접근을 해야한다


▶ 오버라이딩(Overriding)

 

 


 

▶ 오버로딩(Overloading)

 


▶ 오버라이딩과 오버로딩


▶ final 예약어

▶ final 예약어

 


코딩 공부 및 연습 자료

 

상속에 대한 코딩이다

 

 

'JAVA' 카테고리의 다른 글

[JAVA] 기본 API  (0) 2025.04.28
[JAVA] 다형성(Polymorphism),추상화,인터페이스  (0) 2025.04.28
[JAVA] 객체 배열  (0) 2025.04.24
[JAVA] 객체 OOP  (0) 2025.04.21
[JAVA] 배열(Array)  (0) 2025.04.18