티스토리 뷰
반응형
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()와 같은 메소드를 바로 사용할 수 있습니다.
반응형
'JAVA' 카테고리의 다른 글
[Java] 다형성(polymorphism), 업캐스팅, 다운캐스팅, instanceof연산자 (0) | 2022.03.31 |
---|---|
[Java] 상속(Inheritance) - (2)super, super(), 오버라이딩 (0) | 2022.03.30 |
[Java] 메소드(methond)와 생성자(constructor) (0) | 2022.03.23 |
[Java] 클래스(class)의 개념 (1) | 2022.03.22 |
[Java] 객체지향 프로그래밍(OOP) (0) | 2022.03.21 |
댓글
반응형
공지사항