상속 1-1)상속?/extends/상속 class 예시
상속의 목적
매 클래스마다 중복된 코드들을 일일이 기록하게 되면 수정과 같이 유지보수를 할 경우에 매번 찾아서 수정을 해야하는 번거로움이 생깁니다.
-> 상속이라는 개념을 이용해서 매 클래스마다 공통된, 중복된 필드, 메소드들을 하나의 클래스에 모아서 부모클래스로 만들어 놓고 그 클래스마다 상속을 사용하면 코드의 유지보수가 용이합니다. 그리고 클래스의 재사용성이 증가합니다.
상속?
상속이란 매클래스마다 중복된 필드, 메소드를 하나의 클래스에 모아 (부모 클래스) 정의 한 후 상속을 받아 (해당 클래스를 내려받아) 사용하는 개념입니다.
상속 표현방법과 표현식
방법
클래스간의 상속 시에는 extends 키워드 사용
표현식
[접근제한자] class 클래스명 extends 클래스명 {}
public class GalaxyNote extends Phone {}
C++에서는 다중 상속을 지원하지만 자바에서는 상속에선는 단일 상속을 지원합니다. 즉 자바는 하나의 자식 클래스가 하나의 부모 클래스에게만 상속받는다는 뜻입니다. 다중상속은 하나의 자식 클래스가 여러 부모에게 상속을 받는다는 뜻입니다. 다중으로 지원되는것은 interface일 경우입니다. Interface는 나중에 다시 설명드리도록하겠습니다.
그러면 상속을 이해하기 위해서 클래스들을 예시로 보여드리겠습니다.
먼저 부모 클래스 Product입니다.
변수는 brand, pCode,pName,price입니다.(헝가리언 표기법은 죄송합니다.) 기본생성자, 매개변수가 다 있는 생성자, getter/setter함수, information 메소드 즉 모든 변수를 호출하는 메소드를 만듭니다.
자식 클래스 DeskTop입니다.
자식 클래스 SmartPhone입니다.
자식 클래스 Tv입니다.
즉 변수를 계속 생성 할 필요가 없으며 메소드도 부모 클래스에서 가져와서 쓰면 됩니다.
실행 클래스입니다. 다음과 같이 간편하게 getter와 setter등을 불려 올수 있으며, 변수를 줄일 수 있습니다.
주의사항) 내가 실행하고자 하는 메소드가 해당 클래스에 존재하지 않으면 자동으로 해당 클래스의 부모클래스에 있는 메소드로 호출이 됩니다. 단, 자식클래스에 오버라이딩(부모클래스의 메소드를 재정의)한 메소드가 있다면 오버라이딩 자식클래스에 있는 메소드가 호출이됩니다. (오버라이딩 된 메소드가 우선권을 가집니다.)
다음시간에는 super(), super.과 오버라이딩을 공부하겠습니다.
'자바-자린이의 도전기' 카테고리의 다른 글
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩 (0) | 2022.04.10 |
---|---|
상속1-2)super./super()/오버라이딩 (0) | 2022.04.09 |
객체배열-선언,할당/getter,setter,생성자 빨리 만들기 (0) | 2022.04.06 |
객체1-5) 오버로딩/Static/final변수 (0) | 2022.04.06 |
객체 1-4)생성자부 this();/ 메소드/필드(지역변수,멤버변수,클래스변수,전역변수) (0) | 2022.04.04 |
댓글
이 글 공유하기
다른 글
-
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩
상속1-3)오버로딩과 오버라이딩 비교/toString오버라이딩
2022.04.10 -
상속1-2)super./super()/오버라이딩
상속1-2)super./super()/오버라이딩
2022.04.09 -
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
2022.04.06 -
객체1-5) 오버로딩/Static/final변수
객체1-5) 오버로딩/Static/final변수
2022.04.06