자바-11일차(3) 이클립스

최성현·2023년 6월 29일
1

Java

목록 보기
29/46

상속

부모클래스에서 명시적생성자를 사용하면 디폴트 생성자가 사라짐

따라서 부모클래스에 따로 디폴트 생성자를 생성해주면 자식클래스에서도 디폴트 생성자 사용 가능

부모클래스

//부모클래스
class Point{
	int x;
	int y;
	
	//디폴트생성자
	public Point() {
		System.out.println("super_디폴트 생성자");
	}
	
	//명시적 생성자
	public Point(int x,int y) {
		System.out.println("super_인자있는 생성자");
		this.x=x;
		this.y=y;
	}
	
	//메서드
	public void write()
	{
		System.out.println("x좌표="+x+"y좌표="+y);
	}
}

자식클래스

//자식클래스
class SubPoint extends Point{

	String msg;
	
	public SubPoint(int x, int y,String msg) {
		super(x, y);
		this.msg=msg;
	}
	
	//부모클래스에 디폴트생성자 만들어줘서 에러가 안남
	public SubPoint() {
		super(); //생략되있음
		System.out.println("sub_디폴트 생성자");
	}
	
	//오버라이딩...부모의 메서드 재구현할 목적
	@Override
	public void write() {
		super.write();
		System.out.println("메세지: "+msg);
	}
	
}

메인클래스

public class ExobTest_05 {

	public static void main(String[] args) {
		
		SubPoint sp=new SubPoint(); //디폴트 생성자가 있어서 받아짐
		sp.write();//디폴트 생성자에 값을 안넣어줘서 null값 출력
		
		SubPoint sp1=new SubPoint(100, 200, "오늘 비많이 온다!!!");
		sp1.write();

	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글