super 예약어
super() 생성자
자손클래스의 객체 생성시 부모 클래스의 객체 생성을 먼저 함
=> 자손클래스의 생성자에서 부모 클래스의 생성자를 먼저 호출해야함
자손클래스에서 부모클래스의 생성자 호출시 사용
자손클래스의 생성자 첫줄에 구현해야함
부모클래스의 생성자 중 매개변수가 없는 생성자가 있다면 생략 가능 : super()
부모클래스의 생성자 중 매개변수가 있는 생성자가 있다면 생략 불가 : super(....)
super 참조변수
부모클래스의 객체를 참조하는 참조변수
인스턴스 메서드에서만 사용 가능
예시
super() 생성
class Phone2 {
boolean power;
int number;
Phone2(int number){
this.number = number;
}
}
class SmartPhone2 extends Phone2 { //기본생성자 제공시 오류 발생함
SmartPhone2(){
super(1234); // 부모클래스의 생성자 호출
}}
super 참조변수
class Parent{
int x = 10;
Parent(int x){
this.x = x;
}
}
class Child extends Parent{
int x = 20;
Child(){
super(100);
}
void method() {
int x = 30;
System.out.println("x="+x);
System.out.println("this.x="+this.x);
System.out.println("super.x="+super.x);
}
}
public class SuperEx1 {
public static void main(String[] args) {
Child c = new Child();
c.method();
super 참조변수 출력
x=30
this.x=20
super.x=100
'JAVA > 개념' 카테고리의 다른 글
JAVA :: 부모클래스와 자식클래스 멤버가 동일한 경우의 상속 (0) | 2024.03.28 |
---|---|
JAVA :: @Override 오버라이드(오버라이딩), 상속의 다형성 (0) | 2024.03.28 |
JAVA :: 상속 (0) | 2024.03.28 |
JAVA :: 초기화블럭 (0) | 2024.03.28 |
JAVA :: this() 생성자, this 참조변수 (2) | 2024.03.28 |