본문 바로가기

상속3

[JAVA] 상속 - 추상 클래스와 인터페이스 상속을 적용하면 코드를 재사용하고 다형성, 오버라이딩 메소드 등을 이용하여 재사용성 및 유지보수를 향상시킬 수 있습니다. 하지만 상속은 강제성이 없습니다. 하위 클래스에서 상위 클래스의 메소드를 상속받아 사용하지 않고 자신만의 메소드를 사용하게 되면 상속의 장점을 얻을 수 없게 됩니다. 이 때문에 상위 클래스의 메소드를 반드시 사용하게끔 강제할 필요성이 생기는데, 추상 클래스와 인터페이스를 사용하면 상위 클래스의 메소드를 반드시 사용하도록 강제할 수 있어 재사용성 및 유지보수를 더욱 향상시킬 수 있게 됩니다. ◆ 추상 클래스 (abstract class) 클래스가 설계도라면, 추상 클래스는 미완성 설계도라고 할 수 있습니다. 블록({ }) 이 없는 추상 함수(abstract method)를 포함할 수 있.. 2022. 5. 28.
[JAVA] 상속 - 메소드 오버라이딩, 다형성 ◆ 메소드 오버라이딩 (method overriding) 일반적으로 상속 관계에서 부모 클래스의 메소드를 자식 클래스에서 조건 없이 사용 가능합니다. 그런데 자식 클래스에서 부모 클래스의 메소드를 재정의해서 사용할 수도 있는데, 이를 메소드 오버라이딩(method overriding)이라고 합니다. 메소드 오버로딩(method overloading : 이름은 같으나 매개변수가 다른 함수를 여러번 정의)과는 다른 개념입니다. 메소드 오버라이딩을 사용하기 위해서 우선 상속이 전제되어야 합니다. 그리고 부모 클래스에서 선언된 형식 그대로 자식 클래스에서 선언되어야 합니다. 즉, 메소드 이름, 리턴타입, 매개변수, 접근지정자 등이 동일해야 합니다. (더 작은 타입의 리턴타입과 더 넓은 범위의 접근지정자로 재정의.. 2022. 5. 27.
[JAVA] 상속 (Inheritance) 부모가 자식에게 물려주듯, 객체들 간 관계에서 부모 클래스(상위 클래스)가 자식 클래스(하위 클래스)에 클래스의 멤버를 물려주는 관계가 있는데, 이를 상속(Inheritance)이라고 합니다. 다음과 같은 형식으로 상속을 표현합니다. public class 자식클래스 extends 부모클래스 { } 상속이 적용되기 위해서는 객체들 간 is a 관계가 성립해야 합니다. 또한, 자바는 단일 상속만 지원하므로 extends 뒤에 부모클래스는 한 개만 올 수 있습니다. 이렇게 상속 관계를 표현해 주면 부모 클래스의 멤버(인스턴스 변수, 메소드)를 자식 클래스가 선언 없이 사용할 수 있게 됩니다. 가장 상위에 있는 최상위 클래스는 Object 클래스입니다. 모든 클래스는 Object 클래스를 묵시적으로 상속받습니.. 2022. 5. 26.