Basic/etc(33)
-
다형성
1. 다형성(polymorphism) 다형성이란 상위 클래스의 타입의 참조변수로 하위클래스의 객체를 참조하는 것을 말한다. ※ 추상클래스나 인터페이스도 상위클래스에 해당한다. 추상클래스를 상속한 클래스의 객체나 인터페이스를 구현한 클래스의 객체를 상위 추상클래스 형이나 인터페이스 형 변수로 참조 가능하다. 추상클래스와 인터페이스는 뒤에 단원에서 설명한다. class Person { int x; } class Student extends Person { int y; } Person p = new Student(); // 다형성 // p가 참조할 수 있는 멤버는 Student가 다 가지고 있기에 문제가 없다. Student s = new Person(); // X compile error! // s가 참조할..
2014.11.09 -
포함? 상속?
1. 클래스의 재활용 기존의 클래스를 재활용하는 방법에는 "상속"과 "포함"이 있다. 사람이라는 클래스가 있다고 하자. 현재 우리가 필요로 하는 클래스는 학생이라는 클래스인데 학생클래스는 사람클래스가 가지는 모든 멤버를 가져야 한다고 한다면 복사를 해서 사용한다. 여기서 코드의 중복이 생겨나고 사람클래스의 변경이 생기면 학생 클래스도 수정해야 하므로 유지보수에 비용이 들어갈 수 있다. ===> 상속과 포함을 사용함으로써 이런 코드의 중복을 방지하고 코드를 변경하고 싶으면 한 군데만 변경하면 나머지 모든 클래스의 코드가 변경되니 프로그램의 생산성이나 유지보수에 도움이 됨. Person { int age; } ① 포함 Student클래스는 멤버 변수로 Person데이타 변수를 가진다. class Studen..
2014.11.09 -
오버로드? 오버라이딩?
오버로드 (overload) 비슷한 일을 하는 함수를 같은 함수이름으로 인자의 갯수를 다르게 하거나, 타입을 다르게 함으로서 구현하는 방법. 단, 리턴형은 같아도 달라도 무관하다. 오버로딩된 메소드들은 서로 무관한 함수 취급한다. 오버로딩된 경우 적합한 메소드를 찾아서 실행하는 순서 1. 메소드의 이름 2. 메소드의 인자의 개수 3. 각 인자들의 데이터 형 (data type) 1 class CParent 2 { 3 public : 4 void func(int); //오버로딩 5 void func(float, int); //오버로딩 6 void func(int, int); //오버로딩 7 }; 오버라이드(override) 하위 클래스에서 상위 클래스의 함수의 동작을 변경하기 위해 상위 클래스의 함수를 재..
2014.11.06