[ java ] 상속 , 오버라이딩 , 다형성 , 추상클래스 , 패키지
페이지 정보
작성자 웹지기 댓글 0건 조회 2,142회 작성일 20-12-22 10:05본문
코드의 생산성을 높이기 위해 반복문, 메소드, 상속등을 사용하여 코드를 간결하게 한다.
1) 상속
(기존 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성하는 것)
- 프로그램의 생산성을 높이기 위함
- 자식 클래스는 부모클래스에 만들어진 필드와 메소드를 만들지 않고도 만든 것과 같은 효과를 얻는다.
- 기존에 사용하던 것에 대한 확장의 개념
- 클래스 사이의 상속이지 객체 사이의 상속이 아님.
- 자식 객체는 자식클래스와 부모 클래스에 만들어진 모든 멤버를 가지고 생성된다.
① 물려주는 쪽 - 부모클래스(슈퍼 클래스)
② 물려받는 쪽 - 자식클래스(서브 클래스)
1) 상속의 특징
- 다중상속을 할 수 없다.(두개의 슈퍼클래스로부터 상속받는 것을 방지) - 단일상속
- 계층상속을 허용(상속의 깊이) - 제한을 두지는 않지만 너무 깊게 만들면 관리에 힘들다.
- 모든클래스는 항상 상속을 받는 클래스가 존재한다.
(클래스의 상속은 무조건 Object를 상속받는다)
( public void 클래스명 extends Object { 의 구조에서 extends Object가 생략 되었다)
2) 오버라이딩
- 부모로부터 물려받은 메소드를 내입맛에 맞게 재정의를 해준다.
3) 다형성
- 한가지를 가지고 여러 효과를 누릴수 있게 해대주는 것.
//(Animal) 은 강제형변환 - 괄호를 통해서 강제로 변경
- 업캐스팅 - 하위타입에서 상위타입으로 바뀌는것.
(부모클래스의 기능만을 사용할 수 있다.)
상위클래스의 변수, 메소드에만 접근가능
- 다운캐스팅 - 상위타입에서 하위타입으로 바뀌는것
(다시 서브클래스의 기능을 사용할 수 있다.)
하위클래스의 변수, 메소드 접근가능
4) 추상클래스 : 미구현된 클래스(설계도)
- 실제로 사용되지 않으면 길목만을 제공해주는 클래스
- 추상클래스의 객체는 생성할 수 없다.
- 추상클래스의 필요성
상속관계에서 서브클래스가 반드시 구현해야 함을 알릴때(강제성)
설계와 구현분리
- 슈퍼클래스에서는 개념적 특징정의
- 서브 클래스에서 구체적 행위 구현
5) 패키지
- 폴더의 개념(같은 내용끼리 모아서 보관)
댓글목록
등록된 댓글이 없습니다.