머리가 터질 것같다! 과제에만 2시간 넘게 투자했는데 가망이 보이지 않아서 먼저 TIL을 쓰려고 한다. 아직 능이버섯은 될 수 없다..
금일은 Static 와 부모자식간의 상속에 관하여 강의를 들었다. 자주 보이는 Static와 앞으로 자주 쓰게 될 상속은 매우 중요한 위치에 놓여있는데 그 의미를 한번 더 되짚어 보도록 하겠다.
public
클래스, 메서드, 변수 등에 사용되며, 어디서든 접근 가능하다는 의미이다. 예를 들어, public 메서드는 다른 클래스에서도 호출할 수 있다.
static
정적(Static) 멤버를 의미한다.인스턴스(객체)를 생성하지 않고도 클래스 자체에서 접근할 수 있다. static 변수는 클래스 로딩 시점에 메모리에 올라가며, 모든 인스턴스가 공유한다.
부모클래스의 모든 기능을 가지는 자식클래스를 설계하는 방법
부모클래스를 상속하는 자식클래스에게 부모클래스의 모든 기능을 부여
상속하는 방법
> class 자식클래스 : 부모클래스
is-a 관계
부모클래스가 자식클래스를 포함하는 상위개념일경우 상속관계가 적합함
protected
자식간의 공유가 가능한 public
base
부모의 함수를 가져다가 쓸 수 있다.
this
자식의 함수를 가져다가 쓸 수 있다.
업캐스팅
다운캐스팅
업캐스팅 : 자식 → 부모
다운캐스팅 : 부모 → 자식
오버로딩
같은 class 이름이 있을때 적합한 함수로 적용이 된다.
같은 이름의 함수가 있을 때 오류가 생길 수 있으므로 string, int 등 각자 객체에 맞는 변수를 넣어서 다른 결과값이 나오도록 하는 함수이다.
객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질 즉, 같은 메서드나 객체가 다양한 방식으로 동작할 수 있는 것을 말한다. 메서드 오버로딩 & 오버라이딩을 통해 구현 가능하다.
다형성의 장점
추상화
복잡한 내부 구현을 숨기고, 필요한 부분만 외부에 제공하는 개념이며
abstract 키워드를 사용하여 일부 메서드만 구현하고, 나머지는 자식 클래스가 구현하도록 강제하는 클래스이다.
추상화는 혼자가 아닌 다인에서 코드를 만들 때 유용하게 쓰인다.