-------------------------------this()--------------------------
class A{
public static void main(String args[]){
B o=new B(); // 생성자 B() ㄱㄱ
}
}
class B{
B(){ // 1번째
this(200); // 밑에 B(int a) 부름
System.out.println(100);
}
B(int a){ //나 불렀음? ㅇㅇ 가져가셈
this(5,"dd",2); // 근데 나도 B(int a, String b, int c) 부름
System.out.println(a);
}
B(int a,String b,int c){ // B(int a) 야 나 부름?
System.out.println(100000);
}
}
결국엔
100000
200
100
출력
----------------------------------------------------------
this() 와 super()의 문법형태는 비슷하다
this()는 자신과 같은 이름의 생성자( 가로안에 매개변수 형태 같은애!) 를 불러오지만
super()는 extends 클래스명 즉, 자기 부모가 갖고있는 생성자호출 해올수있다.
super()는 그외에도 부모객체나 메소드에도 접근할수있다. 엄마는 자식에게 모든걸 베풀어준다
만약 접근제어자가 널널하면(public , protected,default) 이면 super.멤버변수 로 멤버변수를 쓸수있다.
private는 that's no no
class A{
public int num =2;
}
class B extends A{
public int num =5;
public void shownum(){
System.out.println(num);
System.out.println(super.num);
}
}
class C extends B{
public int num =7;
public void showallnum(){
super.shownum();
System.out.println(super.num);
}
}
class geeshowall {
public static void main(String[] args) {
C c = new C();
c.showallnum();
}
}
출력값 5 2 5