1.상속
- 클래스의 상속관계는 위와같다. 어디에 종속되있는 것이아니라 연결되있다고 생각하는 게 좋다. 위에서 C에서 B를 호출하고 B에서 A를 호출한 후
A실행,B실행,C실행 순서대로 클래스가 실행된다.각 클래스의 생성자에는 super()가 내부적으로 생기게된다. 명시적으로 선언시에 생성자 내부코드의 맨 처음에 실행이 된다.
상속은 specialization과 Generalization크게 두가지로 나뉜다.
(1) specialization
(2) Generalization
- 개발 실력이 아주 뛰어난 경우 아니고는 (2)번의 Generalization 방법으로 코딩하는 것이 좋다. 상속을 미리 생각하고 개발을 하는 경우 개발이 늦어지고 정체될 수 있다. 그래서 (2)번처럼 아래에서 위쪽으로 코딩을 하는 것이 좋다.
*상속의 문제점!!!
=> 필요없는 기능까지 상속받기 때문에 class 코드가 무거워지는 문제점이 있다.
그래서 Decorator 패턴을 이용한다!!! 위의 Generalization방식처럼 코딩하는 것과 비슷 하다.
ex) FileOutputStream out1 = new FileOutputStream("test3.data");
MyFileOutputStream2 out2 = new MyFileOutputStream2(out1);
이 소스에서 두 클래스는 모두 OutputStream의 자식클래스이다. 두 클래스는 직접적인 상속관계가 아니다. 그래서 객체를 생성한 후 파라미터로 넘겨주는 방식으로 필요할 때 서로의 클래스를 이용할 수 있게 한다.
2.File 읽기쓰기
(1) 저장하기
(2) 불러오기






댓글 없음:
댓글 쓰기