개발새발 블로그

[Java] super

컴퓨터/Java
package _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