java #13 상속(inheritance), super
* 상속(inheritance)
- 코드의 재사용성 증가 (부모클래스에서 만들어놓은 미리 만들어놓은 method, 변수를 자식클래스에서 사용할 수 있도록 하는 것.
- oop언어의 3대 특징 중 하나
- 클래스의 계층이 생성된다. (부모-자식 관계 / 선조-후손 관계/ super-sub관계)
- java는 단일상속만 지원한다. (단일상속의 장점 : 부모가 누구인지 명확히 알수있고, 클래스의 크기가 필요이상 커지지 않는다.)
- 클래스 정의시 extends 키워드로 부모클래스를 선택할 수 있다.
- 부모클래스 private은 자식클래스에서 사용할 수 없다.
- 부모클래스의 생성자는 상속되지 않는다.
- 부모클래스의 자원은 super로 사용
- 자식클래스를 객체화하면 부모클래스부터 생성된다.
- 부모클래스는 모든 자식 클래스가 가지는 공통 특징을 정의하고, 자식클래스는 자신만의 특징을 정의한다.
- 모든클래스는 Object 클래스를 상속받는다.
|
* super
- 부모클래스의 자원(변수, 메서드)을 사용하는 키워드
- static 영역에서는 사용할 수 없다.
- 메서드 형식
. super(); super(값..);
. 생성자의 첫줄에서만 사용가능.
. 부모클래스의 생성자를 호출하는 일
. 모든 클래스의 생성자에는 부모클래스의 기본생성자를 호출하는 super가 숨어있다.
- 키워드 형식 : super.변수명, super.메서드명();
- instance 영역에서만 사용가능
- 부모클래스의 변수명, 메서드명이 자식클래스와 같을 때 자식클래스의 변수/메서드와 구분하여 사용.
|
|
'컴퓨터 관련 > JAVA 강의' 카테고리의 다른 글
java #15 interface, 추상클래스 (0) | 2016.12.18 |
---|---|
java #14 다형성, 오버로드(overload), 오버라이드(override), Annotation (0) | 2016.12.18 |
java #12 생성자, 멤버변수와 인스턴스변수, this (0) | 2016.12.18 |
java #11 객체지향프로그래밍 (0) | 2016.12.18 |
java #10 특수문자, variable arguments, printf (0) | 2016.12.18 |