[JAVA] Java 개발에서 상속(Inheritance)보다 위임(Delegation)을 제안하는 이유는? [상속 구조보다 위임을 활용한 개발을 제안하는 이유]
·
◎ Java/Java☕
- 상속 구조보다 위임을 활용한 개발을 제안하는 이유 1. 상속(Inheritance)이란? 부모 클래스의 특성(메서드와 속성)을 자식 클래스가 물려받는 기법이다. (클래스 사이의 관계) 자식 클래스는 부모 클래스의 멤버를 사용하거나 확장하여 새로운 기능을 추가할 수 있으며, 계층 구조를 형성하고 코드를 재사용할 수 있다. 다만, 상속 체인이 깊어지면 클래스 간의 관계가 복잡해지고 변경 사항이 전파될 가능성이 있다. class Animal { public void eat() { System.out.println("밥먹기"); } public void move() { System.out.println("움직이기"); } } /* extends로 상속 */ class Dog extends Animal {} ..
[JAVA] 클래스 간의 관계 [Composite, 포함관계, 관계 결정하기]
·
◎ Java/Java☕
1. 클래스 간의 관계 상속 이외에도 클래스를 재사용하는 방법이 있다. 클래스 간에 '포함(Composite)' 관계를 맺어 주는 것 → 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언 원(Circle)을 표현하기 위한 Circle이라는 클래스가 있다. class Circle { int x; // 원점의 x좌표 int y; // 원점의 y좌표 int r; // 반지름(radius) } Point 클래스를 재사용해서 Circle 클래스를 작성한다면 다음과 같이 할 수 있다. class Circle { Point c = new Point(); // 원점 int r; // 반지름(radius) } class Point { int x; // x좌표 int y; // y좌표 } 하나의 거대한 클래스를 ..
[JAVA] 상속(inheritance)이란? [상속의 개념, 조상 클래스와 자손 클래스]
·
◎ Java/Java☕
1. 상속(inheritance)이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 통해, 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있다. → 클래스 이름 뒤에 상속받고자 하는 클래스의 이름과 그 앞에 키워드 'extends'만 붙여주면 된다. class Child extends Parent { // Child 클래스가 Parent 클래스를 상속 받았다. } 2. 조상 클래스와 자손 클래스 위의 두 클래스는 서로 상속 관계에 있다고 한다. 상속해주는 클래스를 '조상 클래스', 상속 받는 클래스를 '자손 클래스'라 한다. 조상 클래스 : 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 : 자식(child..