KNOU_CS/JAVA
상속과 생성자/super( )
2sac
2024. 4. 16. 14:14
서브 클래스의 객체를 생성하면 서브 클래스의 생성자를 실행하기 전 슈퍼 클래스에서 매개변수가 없는 기본 생성자가 먼저 호출된다.
super(b)는 슈퍼클래스의 CSupert(double a)를 호출하기 위한 메소드임. (명시적)
class CSuper {
public CSuper() {System.out.println("super non-argu");} // 슈퍼 클래스의 기본생성자
public CSuper(double a) {System.out.println("super argu");}
}
class CSub extends CSuper {
public CSub() {System.out.println("sub non-argu\n");} // super();가 생략된 것
public CSub(int a) {System.out.println("sub argu\n");} // super();가 생략된 것
public CSub(double b) {super(b); System.out.println("sub argu2\n");} // 명시적으로 슈퍼클래스의 매개변수 있는 생성자 호출
}
public class Main {
public static void main(String[] args) {
CSub sub1 = new CSub();
CSub sub2 = new CSub(10);
CSub sub3 = new CSub(10.0);
}
}
super non-argu
sub non-argu
super non-argu
sub argu
super argu
sub argu2