개발의 시작과 끝
2020.04.28 / Day - 17 자바 상속, 구성 복습 본문
17일차
- 15 : 00 ~ 17 : 30 : codeup 2문제 이상
- 17 : 30 ~ 18 : 50 : 객체 공부
상속(Inheritance)
상속은 상위클래스에 있는 메서드를 하위 클래스에게 물려주는 것이다.
상위클래스 메서드는 extends를 통해 하위클래스가 상속받을 수 있다.
상속에서 다중상속은 불가하며, 상속을 받을 때는 상식적으로 가능한 것이 좋다.
이를 어기게 되면 나중에 꼬일 수가 있다.
상속에서 상위 클래스 메서드를 물려받은 하위클래스가 메서드를 재정의 할 수가 있는데
이를 메서드 오버라이딩이라고 한다.
class Main {
public static void main (String[] args) {
오리 a오리 = new 오리();
흰오리 a흰오리= new 흰오리();
a오리.날다();
a흰오리.날다();
}
}
class 오리 {
void 날다() {
System.out.prinln("오리가 날다");
}
}
class 흰오리 extends 오리 { // 오리 상속
void 날다() {
System.out.prinln("오리가 하늘로 날다"); // 메서드 오버라이딩
}
}
출력
a오리 = 오리가 날다
a흰오리 = 오리가 하늘로 날다
구성(composition)
구성은 상속과 달리 말 그대로 클래스안에서 새로운 클래스를 구성하는 것이다.
구성패턴 또는 구성방식으로 상속같이 하위 클래스가 상위클래스에 있는 메서드를 물려받지 않는다.
class Main {
public static void main (String[] args) {
사람 a사람 = new 사람();
a사람.a왼팔 = new 팔();
}
}
class 사람 {
int 나이;
팔 a왼팔;
다리 a다리;
}
class 팔 {
}
class 다리 {
}
상속 보다는 구성을 쓰는것이 좋다. 쉽게 말해
상속은 is a관계로 a is b = a는 b다. 이고,
구성은 has a관계로 a has b = a는 b를 가지고 있다. 라고 볼 수있다.
상속에서 상위 클래스가 바뀌게 되면 하위 클래스에게도 영향이 갈 수있기 때문에
구성을 쓰는 것이 좋다.
'풀스택 > 자바 공부, 복습' 카테고리의 다른 글
2020.04.29 / Day - 18 링크드 리스트(LinkedList) (0) | 2020.04.29 |
---|---|
2020.04.28 / Day - 17 자바 생성자 복습 (0) | 2020.04.28 |
2020.04.24 / Day - 13 자바 클래스, 객체 변수 복습 (0) | 2020.04.24 |
2020.04.23 / Day - 12 자바 비트, 바이트, JVM (0) | 2020.04.23 |
2020.04.22 / Day - 11 자바 바이너리 코드, 바이트 코드 (0) | 2020.04.22 |