[혼공자] 4주차 미션

안민선·2024년 1월 29일
0

혼공시리즈

목록 보기
4/7

4주차 미션은 상속이다. 아직 학교에서도 배우지 않는 부분이라 좀 어려웠지만 자바의 객체지향을 다양하게 사용할 수 있다.
(자바쌤이 자바에서 핵심 중 하나가 상속이라고 말하셨던게 생각난다.)


상속을 간단하게 설명하자면...
우리가 흔히 알고 있는 재벌가들의 상속을 생각하면 조금은 이해하기 쉬울 것이다.
부모가 자식에게 재산을 상속하듯이 자바에서도 부모 클래스가 자식 클래스에게 부모의 필드와 메소드를 상속해줄 수 있다.

📌4주차 기본 미션은 클래스의 타입변환에는 어떤것이 있는지 정리하기!

필드의 다향성을 위해 사용되는 방법 중 하나가 '타입 변환'이다.
클래스의 타입 변환 : 다른 클래스 타입으로 객체를 대입하는 것.

자동 타입 변환 : 부모 → 자녀
강제 타입 변환 : 자녀 → 부모
(단, 강제 타입 변환에는 조건이 있다: 자식 타입이 부모타입으로 자동 타입 변환 후 다시 반대로 변환할 때 사용)

instanceof 연산자 : 객체가 어떤 클래스의 인스턴스이지 확인해주는 연산자.
사용법 예제) boolean result = 좌항(객체) instanceof 우항(타입)

Parent parent = new Parent();
Child child = (child) parent;  //강제 타입 변환을 할 수 없음
---------------------------------------------------------------
pulibc void method(Parent) {
  if(parent instanceof Child) {
	Child child = (Child) parent;
  }
}

📌선택미션은 07-3의 3번 문제풀기!

//추상 클래스
package sec03.exam03;

public abstract class HttpServlet {
	
	public abstract void service(); 
	/* 추상 메소드이다. 이유는 abstract가 붙기 때문. 
	 * 추상 클래스에서 {}를 사용하지 못하고 상속 받는 실체 클래스에서 재정의 해서 사용해야 함*/
}
----------------------------------------------------------------------------------------
//출력창
package sec03.exam03;

public class HttpServletExample {

	public static void main(String[] args) {
		
		method(new LoginServlet()); //로그인합니다.
		method(new FileDownloadServlet()); //파일 다운로드합니다.

	}

	public static void method(HttpServlet servlet) {
		servlet.service();
	}
}
----------------------------------------------------------------------------------------
//미션-1
package sec03.exam03;

public class LoginServlet extends HttpServlet{
	@Override
	public void service() {
		System.out.println("로그인 합니다.");
	}

}
----------------------------------------------------------------------------------------
//미션-2
package sec03.exam03;

public class FileDownloadServlet extends HttpServlet{
	@Override
	public void service() {
		System.out.println("파일 다운로드합니다.");
		
	}
}

<미션-1,2 설명>

  • 추상 클래스에서 service 추상 메소드가 있으므로 HttpServlet클래스를 상속받는 클래스(LoginServlet, FileDownloaServlet)가 재정의(Overide)해야한다.
profile
꾸준한 개발자🐥

0개의 댓글