본문 바로가기

OOP3

상속(extends) vs 구현(implements) 상속(Extends) 사실 extends가 상속의 대표적인 형태다. 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되있는 것을 직접 사용 가능하다. class Vehicle { protected int speed = 3; public int getSpeed(){ return speed; } public void setSpeed(int speed){ this.speed = speed; } } class Car extends Vehicle{ public void printspd(){ System.out.println(speed); } } public class ExtendsSample { public static main (String[] args){ Car A = new Ca.. 2022. 4. 17.
Interface vs Abstract Class 주제 내용을 알기전에 is-a 개념과 has-a 개념을 알고갑시다. 객체 지향적 관점 Is-a vs Has-a is-a 말 그대로 'A는 B이다'일 때의 '~이다'와 같습니다. 더보기 is-a는 추상화(형식이나 클래스와 같은)들 사이의 포함 관계를 의미하며, 한 클래스 A가 다른 클래스 B의 서브클래스(파생클래스)임을 이야기합니다. 다른 말로, 타입 A는 타입 B의 명세(specification)를 암시한다는 점에서 타입 B의 서브타입이라고도 할 수 있습니다. is-a 관계는 타입 또는 클래스 간의 has-a 관계와는 대조됩니다. has-a 및 is-a 관계들 간의 혼동은 실세계 관계 모델에 대한 설계에 있어 자주 발견되는 에러입니다. is-a 관계는 또한 객체 또는 타입 간의 instance-of 관계.. 2022. 4. 17.
객체 지향 설계 5가지 원칙 (SOLID) SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP : 단일 책임 원칙 (single responsibility principle) OCP : 개방-폐쇠 원칙 (open/ closed principle) LSP : 리스코프 치환 원칙 (Liskov substitution principle) ISP : 인터페이스 분리 원칙 (interface segregation principle) DIP : 의존관계 역전 원칙 (dependency inversion principle) SRP(단일 책임 원칙) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것음 모호하다. - 클 수 있고, 작을 수 있다. - 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이.. 2021. 12. 26.