객체지향에서 상속이라는 개념은 매우 중요한 개념이다.
상속 : 부모(상속을 해주는) 클래스가 가지고 있는 멤버 변수와 메서드를 자식(상속을 받는) 클래스에서 그대로 사용하기 위함.
상속 받은 자식의 인스턴스를 생성하면 부모의 인스턴스도 함께 생성된다.
즉 하나의 참조값을 가리키지만, 실제로 안에는 2개의 클래스 정보가 있다.
만약에 charge()라는 메서드를 부른다고 가정해보자.
상속 관계는 부모와 자식이 모두 존재한다. 즉 부모를 통해 charge()를 찾을지, 자식을 통해서 charge()를 찾을지 정해야하는데 그건 부르는 인스턴스의 클래스로 결정이 된다.(자식으로 부르면 자식으로 찾음)
그런데 만약에 자식에 charge()라는 메서드가 없으면? 그때는 부모에서 확인한다. 만약에 부모에도 없으면 컴파일 에러가 발생!!
오버라이드 : 부모의 메서드를 재정의 하는 것
오버로딩 : 메서드 명은 같고 파라미터 개수, 타입, 순서를 다르게 해서 여러 개 정의하는 것
super 키워드 : 부모 클래스에 대한 참조를 나타낸다.
상속 관계에서 생성자 호출은 부모 -> 자식 순으로 생성된다!! 즉 부모를 먼저 초기화 하고 자식을 초기화한다.
반응형
'JAVA 강의(인프런)' 카테고리의 다른 글
다형성 (2) (0) | 2023.12.06 |
---|---|
다형성(1) (2) | 2023.12.03 |
Final을 Static과 같이 사용해야 하는 이유 (1) | 2023.12.03 |
Java 메모리 구조 (0) | 2023.12.03 |