Open Kim-EunsooSilver opened 2 years ago
자바를 잘 모르지만, 위 문장으로만 놓고 추상 클래스는 프로토콜로 보면 맞는 것 같아요. 바꾸어도 어색함이 전혀 없네요!
하지만 (공용)인터페이스는 프로토콜보다 조금 더 넓은 개념으로, "외부에 공개된 메서드와 프로퍼티의 집합" 이라고 생각합니다😄
니코와 줄라이가 생각한 추상클래스, 인터페이스 ⊆ 프로토콜
관계에 동의합니다.
하지만 설계는 개발자에 따라서 달라지고
클래스의 상속으로도 204p 그림 6.13
의 구조를 설계할 수 있다고 생각합니다.
다형성을 구현하고 유연한 구조를 만드는 데 프로토콜
만이 정답은 아니라는 생각이 들었습니다.😊
추상 클래스, 인터페이스를 하나의 집합으로 본다면 Swift의 프로토콜 보다 더 넓은 개념(프로토콜을 포함하는 개념)이라고 생각합니다! 기능은 인터페이스, 추상클래스와 유사하지만 추상클래스, 인터페이스 ⊇ 프로토콜
이지 않을까요??
우선 저는 자바의 인터페이스와 스위프트의 프로토콜이 비슷한 개념이라고 생각하고 있었어요.
자바의 인터페이스 ≒ 스위프트의 프로토콜
누가 더 큰 개념이라 포함할 수 있는지, 또 자바의 추상 클래스는 어떤지는 아직 잘 모르겠습니다!
인용해주신 아래 문장에서
인터페이스를 정의하는 추상 클래스와 인터페이스를 구현하는 구체적인 클래스 간의 상속 관계는 클래스 기반의 객체지향 언어에서 다형성을 구현하는 가장 기본적인 방법이다.
인터페이스가 자바의 인터페이스와 동일한 것이겠죠?
자바를 모르는 입장에서 저는 챕터 전반에 걸쳐 말하는 다형성
혹은 자율성
을 읽으며 이것들을 몇 가지 정도의 형태로 계속 비유하며 이해해보았던 듯합니다.
책에서 말하는 인터페이스나 추상클래스의 역할을 더 확장해서 생각핼 수 있을 것 같습니다. 여러분은 어떻게 생각하시나요?
이번 장에서 추상클래스가 등장을 했기에 우리가 공부한 내용을 Swift로 대치해본다면 어떻게 생각해야 하나...? 라는 질문으로 시작하게 되었습니다.
제가 조사한 내용을 짧게 요약하자면
추상클래스, 인터페이스 ⊆ 프로토콜
로 귀결되었습니다. Reference: 추상클래스 VS 인터페이스이 생각을 확장해서 책의 문장을 Swift 언어로 대치해 보았습니다!
저는 상위 문장을 Swift로 대치해보자면! (객체들간의 통신 위한)인터페이스를 정의하는 프로토콜과 프로토콜에 정의된 인터페이스를 구현하는 구체적인 타입 간의 채택 관계는 객체지향 언어(혹은 프로토콜 지향 언어)에서 다형성을 구현하는 기본적인 방법이다.
라고 생각해보았습니다!
여러분들의 생각은 어떠신가요? 제가 생각한
추상클래스, 인터페이스 ⊆ 프로토콜
관계가 맞다고 생각하시나요? 그리고, 책의 문장을 Swift 언어로 대치한 문장에 대해서 다르게 생각하고 계시나요?여러분들의 의견이 궁금합니다!!!