package ex0722;
public class Ex05_Inheritance {
public static void main(String[] args) {
Sample5 ss1 = new Sample5();
ss1.disp();
System.out.println();
Sample5 ss2 = new Sample5(77);
ss2.disp();
System.out.println();
System.out.println(ss1.equals(ss2)); // 주소비교
}
}
class Test5 {
int x;
public Test5() {
x = 0;
System.out.println("상위 클래스-인자없는 생성자");
}
public Test5(int x) {
this.x = x;
System.out.println("상위 클래스-인자 하나인 생성자");
}
public void print() {
System.out.println(x);
}
}
class Sample5 extends Test5{
int a;
public Sample5() {
// super(); 이 생략된 것임
a = 0;
System.out.println("하위 클래스-인자없는 생성자");
}
public Sample5(int x) {
// super(); 와 this는 동시에 쓸 수 없다.
this(10, x); // this([인수]); 가 있으면 super([인수]);는 있을 수 없다.
System.out.println("하위 클래스-인자 하나인 생성자");
}
public Sample5(int a, int x) {
super(x);
this.a = a;
System.out.println("하위 클래스-인자 두개인 생성자");
}
public void disp() {
System.out.println(a+","+x);
}
}
this.a // 내 자신의 필드 a
super.a // 아버지의 필드 a
this(10); // 자신의 클래스에서 다른 생성자를 호출
super();
super(10); // 상위 클래스의 인자가 하나인 생성자 몸체 실행
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0723_Ex01_override (0) | 2021.07.23 |
---|---|
0722_Ex06_override : 오버라이드 상속 재정의 (0) | 2021.07.22 |
0722_Ex04_Inheritance : 인자가 있는 상위 클래스의 생성자 (0) | 2021.07.22 |
0722_Ex03_Inheritance : 생성자 (0) | 2021.07.22 |
0722_Ex02_Inheritance : 상속 (0) | 2021.07.22 |