Develop/JAVA

JAVA - 상속에서의 this 와 super

Rigid to Me 2022. 6. 16. 13:40

추후 수정 예정

class Cal{
	public int sum(int a, int b) {
		return a+b;
	}
	//자식 클래스 Cal2가 가지고 있지 않은 기능을 넣음. 즉 Overloading 함
	public int sum(int a, int b, int c) {
		return this.sum(a, b)+c;
	}
	
}

class Cal2 extends Cal{
	//부모 Cal의 기능을 재 정의함. 즉 Overriding했음
	public int sum(int a, int b) {
		System.out.println("This is Cal2");
		return super.sum(a, b); // 부모클래스 Cal의 sum을 가리키게 됨
	}
	public int minus(int a, int b) {
		return a-b;
	}
	
}

public class InheritanceApp {

	public static void main(String[] args) {
		Cal c = new Cal();
		System.out.println(c.sum(4, 8));
		System.out.println(c.sum(4, 8, 12)); //부모 클래스 Cal의 Sum 을 실행ㄴ
		
		Cal2 c2 = new Cal2();
		System.out.println(c2.sum(6, 5)); // Cal class를 상속받아서 Sum 기능 사용 가능
		System.out.println(c2.minus(6, 5));
		
	}

}