나도 자세하겐 모르는데
상속 관계가 is-a 관계면 추상클래스
관계가 can-do 면 인터페이스 일케 해야한다고 앎
Dog is Animal => 추상클래스
Dog can bite => 인터페이스
그래서 자바에서 comparable처럼 인터페이스는 able(할수 있는)
이렇게 인터페이스 지으라고 함
Dog can bite면 biteable 이런식으로 짓는게 관례임
프갤러 1(58.237)2024-11-26 21:47
답글
이게 하면할수록 animal에서 dog는 4족보행 + 서열있음 + 잡식성 기타등등이란말이야?
결국 이건 able 인터페이스가 되긴 하더라구..
뭔가 코에걸면 코걸이 이런느낌임
익명(211.210)2024-11-26 21:50
답글
abstract든 interface든 강제로 구현해야한다는 점에서 걍 같다고 보면됨
이런건 이론적인 내용이고 안지켜도 기능 구현은 되니까
근데 공통적인거 eat, sleep 이런건 모든 동물이 가능하니까 abstract에서 구현, 모든 동물이 이름을 가진다면 name 변수도 astract 클래스에 명시
반대로 able한것들 fly, swim 등등은 따로따로 인터페잇스로 만들어서 구현, 그래서 다중 상속 가능
반대로 클래스는 다중상속 불가능 뭐 대충 이런 차이가 있긴 함
프갤러 1(58.237)2024-11-26 21:58
난 abstract 만 쓰는딩.
그냥 자식들이 공통으로 쓸 로직 필요하면 abstract씀.
- dc App
다 필요해서 만든거고 잘 쓰임
언제쓰이는지 키워드 던져주라..
나도 자세하겐 모르는데 상속 관계가 is-a 관계면 추상클래스 관계가 can-do 면 인터페이스 일케 해야한다고 앎 Dog is Animal => 추상클래스 Dog can bite => 인터페이스 그래서 자바에서 comparable처럼 인터페이스는 able(할수 있는) 이렇게 인터페이스 지으라고 함 Dog can bite면 biteable 이런식으로 짓는게 관례임
이게 하면할수록 animal에서 dog는 4족보행 + 서열있음 + 잡식성 기타등등이란말이야? 결국 이건 able 인터페이스가 되긴 하더라구.. 뭔가 코에걸면 코걸이 이런느낌임
abstract든 interface든 강제로 구현해야한다는 점에서 걍 같다고 보면됨 이런건 이론적인 내용이고 안지켜도 기능 구현은 되니까 근데 공통적인거 eat, sleep 이런건 모든 동물이 가능하니까 abstract에서 구현, 모든 동물이 이름을 가진다면 name 변수도 astract 클래스에 명시 반대로 able한것들 fly, swim 등등은 따로따로 인터페잇스로 만들어서 구현, 그래서 다중 상속 가능 반대로 클래스는 다중상속 불가능 뭐 대충 이런 차이가 있긴 함
난 abstract 만 쓰는딩. 그냥 자식들이 공통으로 쓸 로직 필요하면 abstract씀. - dc App