티스토리 뷰

반응형

 

1. 상속의 개념

  • 상속이란 기존 클래스의 변수와 메소드를 물려 받아 새로운 클래스(더 나은, 더 구체적인 클래스)를 구성하는 것을 의미합니다.
  • 이러한 상속은 캡슐화, 추상화, 다형성과 더불어 객체지향프로그래밍을 구성하는 특징 중 하나입니다.
  • 쉽게 이해해보자면 현실세계에서 부모의 생물학적 특성을 자식이 물려받는 유전과 비슷하다고 생각할 수 있습니다.

상속의 개념

 

2. 상속의 필요성

상속의 장점은 다음과 같습니다.

  • 기존 클래스의 변수와 코드를 재사용할 수 있어 개발 시간이 단축됩니다. 
  • 먼저 작성된 검증된 프로그램 재사용하기 때문에 신뢰성 있는 프로그램을 개발할 수 있습니다.
  • 클래스 간 계층적 분류 및 관리가 가능하여 유지보수가 용이합니다.

 

 

 

3. 클래스 상속

 

상속 선언

 

  • 부모클래스를 슈퍼클래스(super class), 상속받는 자식 클래스를 서브클래스(sub class)라고 부른다.
  • 상속을 선언할 때는 extends 키워들 사용한다.

 

public class Phone {	//슈퍼클래스(전화기 클래스) 선언

	public void call() {
		System.out.println("전화를 겁니다....");
	}
	public void send() {
		System.out.println("전화를 받습니다....");
	}
}

 

public class smartPhone extends Phone {	// 상속 선언(스마트폰은 전화기를 상속받는다)

	public void wifi() {
		System.out.println("와이파이 실행....");
	}
}
  • 스마트폰 클래스는 전화기 클래스의 call(), send() 기능을 물려받으므로 스마트폰 클래스에서 메소드를 다시 반복하여 작성할 필요 없다.
  • 스마트폰의 추가 기능인 wife() 메소드를 작성하면 된다.

 

 

서브 클래스 객체

 

public class Ex01 {

	public static void main(String[] args) {
		
		Phone p1 = new Phone();	//전화기 객체 생성
		
		p1.call();
		p1.send();
		
		
		
		smartPhone p2 = new smartPhone(); // 스마트폰 객체 생성
		
		p2.call();	// 스마트폰 클래스에서 전화기 클래스 멤버 접근
		p2.send();
		p2.wifi();  // 기능 확장
	}

}
  • 생성된 객체는 p1과 p2이다.
  • 객체 p1은 Phone클래스의 멤버만 가지고, p2는 Phone 클래스와 smartPhone 클래스의 멤버를 모두 가진다.

 

4. 상속의 특징

상속의 특징은 다음과 같습니다.

  • 자바에서는 클래스의 다중상속을 지원하지 않는다.
    • 클래스를 여러개 상속받는 다중상속을 지원하지 않으므로 extends 다음에는 클래스 이름 하나만 지정할 수 있다.
  • 자바에서는 상속의 횟수에 제한을 두지 않는다.
  • 자바에서 계층구조의 최상위에 java.lang.Object 클래스가 있다.
    • 자바에서 모든 클래스는 Object클래스를 자동으로 상속받도록 되어있다.
    • toString(), equals()와 같은 메소드를 바로 사용할 수 있습니다. 

상속의 특징

 

 

 

 

 

 

반응형
댓글
반응형
공지사항