태그
#JAVA
JAVA - inheritance
2021년 6월 11일 02:00

상속
- 클래스끼리 물려주거나 물려 받는 것
- 물려준 클래스(부모 클래스)의 속성과 기능을 물려 받은 클래스 (자식 클래스) 에서 사용이 가능해지고 물려받은 클래스에서는 추가적은 표현을 통해 새로운 클래스를 만드는 문법
- 클래스의 재활용, 프로그램의 유연성(수정, 삭제, 추가)의 중대를 위해 사용
- 상속을 바탕으로 다형성을 구현한다
형식
- 자식 클래스에서 부모 클래스를 지정한다
- extends를 통하여 클래스를 상속받는다 (단 1개만)
- 아무리 자식이더라도 부모의 private멤버는 접근 불가 ★★★
class 자식클래스명 extends 부모클래스명 {
코드 정의;
}
ex )
class Person
// 부모 클래스 (super class)
public class Person {
protected String name; // 자식클래스는 접근 가능함 (같은 패키지 안에 있는 클래스들도)
// 생성자
public Person() {
System.out.println("응애애앵!!!");
}
public Person(String name) {
this.name = name;
}
public void introduce() {
// 내이름은 OO 입니다
System.out.println("내 이름 " + this.name + ", 탐정이죠");
}
}
class Student
// 자식 클래스 (child class)
public class Student extends Person {
private String major;
// 생성자
public Student() {
System.out.println("학생입니다");
}
// 오버로딩 (파라미터 또는 파일의 개수가 다른 것)
public Student(String name, String major) {
super(name); // 무조건 부모가 제일 먼저 생성되어야 함
// super.name = name;
this.major = major;
}
// 오버라이드 : 부모클래스에 있는 메소드를 자식 클래스에서 재정의 하는 것
@Override
public void introduce() {
super.introduce();
System.out.println("내 전공은 " + this.major + "입니다");
}
}