[Java] 실습 (this, super)

2022. 8. 12. 17:32·Language/Java
728x90
//--------------------------------------------------------------------------
class Parent {
	int x = 10;
}
//--------------------------------------------------------------------------
class Child extends Parent {
	void method() {
		System.out.println("x 	-> " + x);
		System.out.println("this.x 	-> " + this.x);
		System.out.println("super.x -> " + super.x);
	}
}
//--------------------------------------------------------------------------

public class SuperExam {

	public static void main(String[] args) {
		Child c = new Child();
			c.method();
			
	}

}
// 출력 결과
x 	-> 10
this.x 	-> 10
super.x -> 10
//--------------------------------------------------------------------------
class Parent {
	int x = 10;
}
//--------------------------------------------------------------------------
class Child extends Parent {
	int x = 20;
	void method() {
		System.out.println("x 	-> " + x);
		System.out.println("this.x 	-> " + this.x);
		System.out.println("super.x -> " + super.x);
	}
}
//--------------------------------------------------------------------------
public class SuperExam {

	public static void main(String[] args) {
			Child c = new Child();
				c.method();
	}

}
// 출력 결과
x 	-> 20
this.x 	-> 20
super.x -> 10
//--------------------------------------------------------------------------
class Point {
	int x;
	int y;
	Point() {} // super();에 매개변수 전달해주거나 매개변수없는 기본생성자를 만들어줘야함.
	Point(int x, int y) {
		this.x = x;
		this.y = y;
	}
	String getLocation() {
		return "x:" + x + ", y:" + y;
	}
}
//--------------------------------------------------------------------------
// Object 클래스를 제외한 모든 클래스의 생성자 첫 줄에는
// 생성자(같은 클래스와 다른 클래스 생성자 또는 조상의 생성자)를 호출해야 한다.
// 그렇지 않으면 컴파일러가 자동적으로 super();를 생성자의 첫 줄에 만들어준다.
//--------------------------------------------------------------------------
class Point3D extends Point {
	int z;
	
	Point3D(int x, int y, int z) {
		super(); // 위에 매개변수 없는 기본생성자를 만들어 주거나 super(1, 2) 안에 이런식으로 매개변수 전달 해줘야 함
		this.x = x;
		this.y = y;
		this.z = z;
	}
	String getLocation() { // 오버라이딩
		return "x:" + x + ", y:" + y + ", z:" + z;
	}
}
//--------------------------------------------------------------------------
public class PointExam {

	public static void main(String[] args) {
		Point3D p3 = new Point3D(1, 2, 3);
		System.out.println(p3.getLocation());
	}

}
// 출력 결과
x:1, y:2, z:3

'Language > Java' 카테고리의 다른 글

[Java] 정리 (상속(inheritance))  (0) 2022.08.12
[Java] 실습 (단일 상속)  (0) 2022.08.12
[Java] 실습 (Overriding Overloading)  (0) 2022.08.12
araFarm  (0) 2022.08.11
[Java] 메소드 오버로딩 (Method Overloading)  (0) 2022.08.11
'Language/Java' 카테고리의 다른 글
  • [Java] 정리 (상속(inheritance))
  • [Java] 실습 (단일 상속)
  • [Java] 실습 (Overriding Overloading)
  • araFarm
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    next.js
    object
    타입스크립트
    event
    web
    TypeScript
    자바스크립트
    CSS
    Java
    MySQL
    파이썬
    HTML
    array
    리액트
    Python
    제어문
    변수
    객체
    react
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[Java] 실습 (this, super)
상단으로

티스토리툴바