인터페이스
-
10강. 코틀린에서 상속을 다루는 방법BackEnd/Kotlin 2024. 3. 4. 06:30
추상 클래스 인터페이스 클래스를 상속할 때 주의할 점 상속 관련 지시어 정리 추상 클래스 다음은 추상클래스인 JavaAnimal 코드입니다. public abstract class JavaAnimal { protected final String species; protected final int legCount; public JavaAnimal(String species, int legCount) { this.species = species; this.legCount = legCount; } abstract public void move(); public String getSpecies() { return species; } public int getLegCount() { return legCount; ..
-
Item 20. 추상 클래스보다는 인터페이스를 우선하라Book/Effective Java 3E 2022. 10. 29. 08:46
자바가 제공하는 다중 구현 메커니즘은 인터페이스와 추상 클래스, 이렇게 두가지입니다. 자바8부터 인터페이스도 디폴트 메서드(default method)를 제공할 수 있게 되어, 이제는 두 메커니즘 모두 인스턴스 메서드를 구현 형태로 제공할 수 있습니다. 인터페이스는 믹스인(mixin) 정의에 안성맞춤입니다. 믹스인이란 클래스가 구현할 수 있는 타입으로, 믹스인을 구현한 클래스에 원래의 '주된 타입' 외에도 특정 선택적 행위를 제공한다고 선언하는 효과를 줍니다. 예컨대 Comparable은 자신을 구현한 클래스의 인스턴스들끼리는 순서를 정할 수 있다고 선언하는 믹스인 인터페이스입니다. 추상 클래스로는 믹스인을 정의할 수 없습니다. 자바는 단일 상속만 지원하니, 클래스 계층구조에는 믹스인을 삽입하기에 합리적..
-
객체지향의 사실과 오해 (3)Book/객체지향의 사실과 오해 2022. 9. 25. 04:44
05. 책임과 메시지 의도는 "메시징"이다. 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션하는가에 달려 있다. - 앨런 케이[Kay 1998] 객체지향 공동체를 구성하는 기본 단위는 '자율적'인 객체다. 객체들은 애플리케이션의 기능을 구현하기 위해 협력하고, 협력 과정에서 각자 맡은 바 책임을 다하기 위해 자율적으로 판단하고 행동한다. 자율적인 책임의 특징은 객체가 '어떻게(how)' 해야 하는가가 아니라 '무엇(what)'을 해야 하는가를 설명한다는 것이다. 객체지향 프로그래밍에서 행동은 수행할 책임을 지닌 객체에게 전송된 메시지에 의해 시작된다. 메시지는 행동에 대한 요청을 표현하고, 요청을 수행하는 데 필요한 추가적인 정보를 인자..