[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] 객체 상속 시, 인스턴스는 어떤 순서로 생성될까? [super(), Object Creation in Java]
·
◎ Java/Java☕
- 객체 상속 시, 인스턴스는 어떤 순서로 생성될까? 객체를 상속하고 있을 경우, 인스턴스의 생성 순서는 어떻게 될까? 아래와 같이 Student 객체는 Person 객체를 상속하고 있다고 가정해보자. public class Person { // 내용 생략 } public class Student extends Person { // 내용 생략 } 여기서 Student 인스턴스를 생성할 경우, 아래와 같은 구조가 된다. (모든 객체는 Object 객체를 상속하고 있다.) 객체는 본인보다 상속 받은 상위 클래스를 먼저 인스턴스화 한 뒤, 마지막에 본인의 인스턴스를 생성한다. 상위 클래스의 생성자를 super()로 호출하며, 코드로 보면 아래와 같다. public class Person { public Per..
[JAVA] 상속(inheritance)이란? [상속의 개념, 조상 클래스와 자손 클래스]
·
◎ Java/Java☕
1. 상속(inheritance)이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 상속을 통해, 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있다. → 클래스 이름 뒤에 상속받고자 하는 클래스의 이름과 그 앞에 키워드 'extends'만 붙여주면 된다. class Child extends Parent { // Child 클래스가 Parent 클래스를 상속 받았다. } 2. 조상 클래스와 자손 클래스 위의 두 클래스는 서로 상속 관계에 있다고 한다. 상속해주는 클래스를 '조상 클래스', 상속 받는 클래스를 '자손 클래스'라 한다. 조상 클래스 : 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 : 자식(child..