[Java] super
컴퓨터/Javapackage _04_super;
class Parent {
int x = 10;
}
class Child extends Parent{
int x = 20;
void show() {
int x = 30;
System.out.println("x=" + x); // 지역변수 -> 인스턴스 변수 -> 부모 변수
System.out.println("this.x=" + this.x); // 인스턴스 변수 -> 부모 변수
System.out.println("super.x=" + super.x); // 부모변수
}
}
public class T01_SuperRun {
public static void main(String[] args) {
Child c = new Child();
c.show();
}
}
package _04_super;
class Parent2 {
int x = 10;
void show() {
System.out.println("부모클래스 메소드");
}
}
class Child2 extends Parent2{
int x = 20;
void show() {
System.out.println("자식클래스 메소드");
}
void display() {
show();
super.show();
System.out.println("this.x=" + this.x);
System.out.println("super.x=" + super.x);
}
}
public class T02_SuperRun {
public static void main(String[] args) {
Child2 child = new Child2();
child.display();
}
}
package _04_super;
class Parent3 {
int x;
int z;
Parent3() {
System.out.println("부모생성자 호출");
x = 10;
z = 10;
}
}
class Child3 extends Parent3{
int x;
int y;
Child3() {
System.out.println("자식생성자 호출");
x = 10*10;
y = 10*10;
}
}
class GrandChild extends Child3{
int x;
GrandChild() {
System.out.println("손자생성자 호출");
x = 10*10*10;
}
}
public class T03_SuperRun {
public static void main(String[] args) {
GrandChild child = new GrandChild();
System.out.println(child.x);
// System.out.println(child.super.x); super는 상속받은 곳에서만 사용
System.out.println(child.y);
System.out.println(child.z);
}
}
'컴퓨터 > Java' 카테고리의 다른 글
[Java] polymorphism (0) | 2024.08.02 |
---|---|
[Java] overriding (0) | 2024.08.02 |
[Java] 상속 (0) | 2024.07.25 |
[Java] static (0) | 2024.07.25 |
[Java] 오버로딩 (0) | 2024.07.25 |