728x90
반응형
this 는 저번에도 배웠다시피 자기자신, 그것도 instance를 가르킬때 써주는 기능이다.
아 솔직히 설명하라하니까 모르겠다. 다시 보고 와야지
// 내가 마지막 정리로 class가 instance화 되었을때 그 instance를 가르키는게 this라고 적었다. 그냥 이렇게 외우는게 빠를듯
여튼 super는 자기 자신이 아니라 상속받고 있는 부모를 가르키는 기능이다.
그래서 이런 식으로 써줄 수 있다.
class Cal{
public int sum(int v1, int v2) {
return v1+v2;
}
//Overloading
public int sum(int v1, int v2, int v3) {
// this 는 자기자신, 그것도 instance를 가르키는 것.
return this.sum(v1, v2)+v3;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1-v2;
}
//Overriding
public int sum(int v1, int v2) {
System.out.println("Cal3!");
//.super는 부모의 method를 가져오라는 것을 의미함
return super.sum(v1, v2);
}
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1));
Cal3 c3 = new Cal3();
System.out.println(c3.minus(3, 10));
System.out.println(c3.sum(2, 1));
}
}
Overriding 을 .super 을 통해서 가져온거다.
.super는 부모의 method를 가져오라고 호출하는것.
그 위에 쓴 this 는 Cal의 sum, 즉 자기자신의 method를 가져오라고 시키는것이기 때문에 저렇게 써주면 된다.
728x90
반응형
'Java > Java 상속' 카테고리의 다른 글
상속과 생성자 (0) | 2020.12.01 |
---|---|
Overriding vs Overloading (0) | 2020.12.01 |
Overriding (0) | 2020.12.01 |
Java에서 상속 (0) | 2020.12.01 |