class SD1{
public int i1;
public double d1;
public SD1(int i1){
System.out.println("SD1(int i1) 생성자 수행");
this.i1 = i1*i1; //여기서 그냥 i2라는 새로운 변수로 i2 = i1 * i1 하면 안되나?
System.out.println(i1+"의 제곱은 : "+this.i1);
}
public SD1(double d1){
System.out.println("SD1(double d1) 생성자 수행");
this.d1 = d1 * d1;
System.out.println(d1+"의 제곱은 : "+this.d1);
}
}
class Sub1 extends SD1{
public Sub1(int i1){ //매개변수가 int인 메서드
super(i1); //상위 클래스의 생성자 호출
System.out.println("Sub1(int i1) 생성자 수행");
this.i1 = this.i1 * i1;
System.out.println(i1+"의 세제곱은 :" + this.i1);
}
public Sub1(double d1){ //매개변수가 double인 메서드
super(d1);
System.out.println("Sub1(double d1) 생성자 수행");
this.d1 = this.d1 * d1;
System.out.println(d1+"의 세제곱은 : " + this.d1);
}
}
public class SuperTest3{
public static void main(String args[]){
Sub1 sub1 = new Sub1(10); //매개변수가 int인 Sub1을 실행할 것
Sub1 sub2 = new Sub1(10.5); //매개변수가 double인 Sub1을 실행할 것
}
}
1. 클래스 SD1
- int i1을 매개변수로 갖는 SD1 메서드
- double d1을 매개변수로 갖는 SD1 메서드
2. 클래스 Sub1 - SD1을 상속받는 클래스
- int i1을 매개변수로 하는 Sub1 메서드
- super(i1)로 인해 SD1의 생성자 i1을 가져옴
- doube i1을 매개변수로 하는 Sub1 메서드
- 마찬가지로 super(d1)으로 인해 SD1의 생성자 d1을 가져옴
3. 클래스 SuperTest3
- Sub1의 객체 sub1에 매개변수 10 입력 : 10이므로 매개변수가 int인 Sub1을 실행
- Sub1의 객체 sub2에 매개변수 10.5 입력 ; 10.5이므로 매개변수가 double인 Sub1을 실행
'Java' 카테고리의 다른 글
[Java] Abstract, 다형성 (0) | 2022.12.06 |
---|---|
[Java] 상속 연습 - 라면 끓이는 프로그램 (0) | 2022.11.20 |
[Java] 생활코딩 | 생성자, super, 메소드 오버라이딩, 메소드 오버로딩 (0) | 2022.11.13 |
[Java] 생활코딩 | 클래스 멤버, 인스턴스 멤버, 클래스 메소드, 유효범위 (0) | 2022.11.13 |
[Java] 점프 투 자바 연습문제 04장 제어문 (1) | 2022.09.24 |