C#
나만의 정리 객체지향 C#
시코.
2024. 3. 8. 14:40
728x90
객체의 상호작용으로 프로그램들의 직관성 가독성 용이성을 높인다
디버깅이 약간 어려워 질 수 있고 설계를 잘 해야한다
캡슐화
어떤 연관성이 있는 멤버와 함수를 묶는다. 직관성 UP
정보은닉
사용시 필요한 기능들만 보여주게 한다
인텔리전스에서도 사용해야하는 함수들만 보이기 때문에 사용이 용이해진다.
상속
부모의 기능과 특성을 물려받는다 반복된 코딩을 줄일 수 있다
다형성과 관련이 있다
Is a 관계로 상속을 해야한다 직관적이다
has a는 상속이 아닌 소유관계로 내부에 인스턴스를 따로 가진다
공통점있다고 마구 상속하면 프로그램 해석이 어려워진다
ex.사각형은 도형이다
도형클래스와 사각형 클래스를 만들고 각자의 특성을구분이 가능하다.
이는 다형성과도 이어진다
추상화
부모클래스로 갈수록 개념에 가까워지는 경우가 많다
그럴경우 실제로 객체를 생성하고 사용하면 안되는 경우가 있을 수 있다 이때는 abstract를 사용한다.
인터페이스
interface를 상속하면 어떤 기능을 강제로 구현하게하여 어떤 기능을 가지고있음을 명시할 수 있다.
interface는 다중상속이 가능하다.
다형성
다양한 기능들을 쉽게 표현이 가능하다
상속받았을경우 부모 클래스에 자손클래스가 할당이 가능하다
이때 자손의 기능을 그대로 쓰기위해선 overrideing 해야한다
제네릭으로 여러 자료형에 대응되는 함수나 클래스 구현이 가능하다
하지만 예상못한 오류가 날 수 있어 where을 사용하여 잘 한정해줘야 한다.
오버로딩으로 하나의 이름이 입력값에따라 다른 동작이 가능하다
유연해진다
728x90