목록상속 (4)
AiPE
객체지향에서의 인터페이스가 무엇인지에 대해 내가 들었던 자바 강의 선생님께서 좋은 설명을 해 주셔서 이를 그대로 가져왔다. "객체지향은 프로그램의 각 부분을 부품화하는 설계 방식이라고 할 수 있다."는 명제를 전제하고 읽어보자. 잘 만들어진 부품이라면 부품과 부품을 서로 교환 할 수 있어야 한다. 예를 들어보자. 집에 있는 컴퓨터에 A사의 모니터를 연결하다가 B사의 모니터를 연결 할 수 있다. 또, 집에 있던 모니터에 A사의 컴퓨터를 연결해서 사용하다가 새로운 컴퓨터를 구입하면서 B사의 컴퓨터를 연결 할 수 있다. 모니터와 컴퓨터는 서로가 교환관계에 있는 것이다.이것은 모니터와 컴퓨터를 연결하는 케이블의 규격이 표준화 되어 있기 때문에 가능한 일이다. 컴퓨터와 모니터를 만드는 업체들은 HDMI의 규격을 ..
1. 캐스팅(Casting)의 정의일반적으로 캐스팅(Casting)이란 명시적 형 변환과 동일한 용어로 쓰인다.즉, 프로그래머가 (type) 연산자를 사용하여 의도적으로 자료의 형식을 바꿀 때 이를 특별히 캐스팅이라고 한다.캐스팅은 업 캐스팅과 다운 캐스팅으로 나눌 수 있다. (명시적 형 변환과 묵시적 형 변환에 대해서는 아래 포스팅 참조)https://xibbal-lab.tistory.com/69 명시적 형 변환과 묵시적 형 변환명시적 형 변환(Explicit Type Conversion)과 묵시적 형 변환(Implicit Type Conversion)은 데이터 유형을 다른 형식으로 변환할 때의 두 가지 방법이다. 정수 데이터를 소수(float)데이터로 변환하는 등, 데이터xibbal-lab.tisto..
Java에서의 final 키워드는 클래스, 메서드, 변수 앞에서 사용될 수 있다. 공통적으로 "~~가 불가하다"는 의미를 나타내지만, 어디 앞에 쓰이느냐에 따라 약간의 의미 차이를 보인다. 1. 클래스 앞에서 사용되는 경우 해당 클래스가 상속될 수 없다는 것을 의미한다. 이는 클래스가 확장될 필요가 없거나, 확장될 경우 원치 않는 동작을 방지하려는 경우에 유용하다. Ex. 협업을 하거나 대규모 프로젝트를 개발할 때 .. 개발자 A는 임의의 클래스가 다른 클래스에 의해 확장되거나 상속되지 않기를 바랄 수 있다. 클래스 A를 상속하는 클래스가 많아지면 예기치 않은 오작동이 발생할 수도 있기 때문이다. 혹은, 개발자 A 이외의 다른 개발자들이 이 클래스를 상속하는 것을 원치 않을 수 있다. 이러한 경우에도 f..
객체지향의 핵심 개념 중의 하나인 상속(Inheritance)에 대해 알아보자. 1. 상속(Inheritance)이란? Java에서는 하나의 클래스가 존재할 때, 이 클래스의 속성(변수와 메서드)를 다른 클래스에서 그대로 물려받아 사용할 수 있다. 이렇게 하나의 클래스가 다른 클래스에게 자신의 속성을 물려주는 행위 자체를 상속이라고 부른다. 상속을 해주는 클래스를 부모 클래스, 상속을 받는 클래스를 자식 클래스라고 부른다. 부모 클래스가 더 큰 집합이므로, 자식 클래스는 부모 클래스의 모든 속성을 일단 그대로 물려받는다. 단, 자식 클래스는 부모 클래스가 가지지 못하는 속성을 추가하여 사용할 수 있다. 그렇다면 상속이 왜 객체지향의 핵심적인 특성이며, 코드를 효율적으로 해 주는 장치일까? 이를 알아보기 ..