반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- California State University Sacramento
- 유학생 준비물
- 사이드프로젝트
- 복수학위제도
- 미국대학생활
- JVM아키텍처
- java
- 자바 스터디
- 만다라트프로젝트
- 파이데이아창의인재학과
- 개인 프로젝트 개발일지
- 2+2
- i-20
- 부산외대
- 케네스로그
- 미국대학
- 해외유학
- F1학생비자
- 유학생대학생활
- Kenneth Park
- 자바
- jpa
- 미국유학생활
- Java 스터디
- 케네스
- 비전공자 git
- 개발일지
- 미국유학생
- CSUS
- 미국유학
Archives
- Today
- Total
케네스로그
[Java] 상속, super() 본문
반응형
상속 Inheritance
상속(inheritance)는 한 클래스에서 다른 클래스의 속성(필드,메소드)들을 갖는것을 말합니다.
자식 클래스는 extends키워드를 통해 부모 클래스의 필드와 메소드를 상속받을 수 있으며, private인 속성과 메소드는 상속되지 않습니다.
- 상속을 받는 클래스 =: 하위클래스, 자식클래스, sub클래스
- 상속하는 클래스 =: 상위클래스, 부모클래스, super클래스
class Parent { }
class Child extends Parent { }
상속의 특징
- 다중상속은 불가능하며, 오직 단일 상속만 가능합니다.
- 한 클래스가 여러 부모 클래스를 가지는 것은 불가능합니다.
- java.lang.Object클래스가 최상위 클래스이며, 모든 클래스는 Object클래스의 자손입니다.
- 상속의 횟수는 제한이 없습니다.
- private인 필드와 메소드는 상속대상에서 제외됩니다.
- 부모,자식클래스가 서로 다른 패키지 내에 있다면 default 필드와 메소드 또한 상속에서 제외된다.
super키워드와 super()메소드
- super 키워드는 부모의 메소드, 변수에 접근하기 위해 사용됩니다.
class Vehicle {
public String model;
public Vehicle(String model) {
this.model = model;
}
void move() {
System.out.println(this.model+" is moving");
}
}
class Tesla extends Vehicle {
public Tesla(String model) {
super(model);
}
void autoDrive() {
super.move(); // 부모의 move()메소드
}
}
- super() 메소드: 부모의 기본 생성자 호출
class SmartPhone {
String function = "call";
int IMEI;
public SmartPhone() {
this.IMEI = 1234;
}
}
class Iphone extends SmartPhone {
public Iphone() {
super(); // 없더라도 자동으로 컴파일러에의해 추가된다
super.IMEI = 9999;
}
}
부모의 기본 생성자가 존재하지 않고 파라미터를 받는 생성자만 존재하는 경우,
자식 클래스에서도 super()를 호출함에 있어 반드시 파라미터를 넘겨줘야만 합니다.
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 패키지 (0) | 2022.02.18 |
---|---|
[Java] 메소드 디스패치 (0) | 2022.02.16 |
[Java] 객체의 생성, 인스턴스화, 생성자, this 키워드 (0) | 2022.02.09 |
[Java] 메소드, 접근제어자 (0) | 2022.02.08 |
[Java] 클래스 (0) | 2022.02.08 |